fekre-bekr,learning,source,سورس,سورس رایگان,آموزش,اخبار,فناوری اطلاعات,mvc,.net,ساری,آموزشگاه,asp.net,c#.net,programing,c++,vb,آموزش برنامه نویسی,دانلود

اشتراک در سایت


مطالب تصادفی
اخبار و مقالات در فکر بکر آموزش نحوه ایجاد Model برای دیتابیس موجود در Entity Framework Core

در این آموزش به نحوه ایجاد کلاسهای context و entity برای دیتابیس موجود در Entity Framework Core خواهیم پرداخت. ...


اخبار و مقالات در فکر بکر آموزش publish کردن برنامه های Asp.net core بر روی سرور iis

در این آموزش ابتدا یک پروژه ساده با استفاده از asp.net core 2.1 ایجاد میکنیم و سپس آنرا بر روی سرور iis قرار خواهیم داد. ...


اخبار و مقالات در فکر بکر پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش اول)

در این مقاله به آموزش و پیاده سازی سفارشی سیستم احراز هویت کاربران خواهیم پرداخت. معمولا در حالت عادی هر سایت حداقل شامل مدیر سی ...


اخبار و مقالات در فکر بکر سورس برنامه shutdown - restart - lock - sleep در سی شارپ

سورس بسیار زیبای برنامه shutdown - restart - lock - sleep در سی شارپ را از فکر بکر دانلود نمایید. لطفا به ادامه مطالب توجه نمایید ...


اخبار و مقالات در فکر بکر سورس ماشین حساب پیشرفته در سی شارپ

با سلام خدمت کاربران فکر بکر - سورس زیبای ماشین حساب پیشرفته با قابلیت تبدیل مبنا را بصورت رایگان از فکر بکر دانلود نمایید ...


اخبار و مقالات در فکر بکر آموزش ارسال و دریافت فایل در برنامه تحت شبکه با استفاده ار سوکت (Socket)

در این آموزش فایلی را در شبکه با استفاده از سوکت و پروتکل TCP ارسال و سپس دریافت میکنیم.لطفا به ادامه مطلب توجه نمایید. ...


اخبار و مقالات در فکر بکر آشنایی با SignalR در Asp.net core

در این آموزش به ساخت یک برنامه real-time با استفاده از SignalR در Asp.net core 2.1 خواهیم پرداخت. ...


اخبار و مقالات در فکر بکر آموزش پیاده سازی UnitOfWork در Asp.net Core قسمت اول

قبل از اینکه به پیاده سازی UnitOfWork بپردازیم ، نیاز به ایجاد زیرساختهای لازم جهت استفاده از مدلهای موجود در برنامه داریم ، پیش ...


اخبار و مقالات در فکر بکر استفاده از Google Map در Asp.net

در این مقاله میخواهیم به نحوه ی پیاده سازی امکانات Google Maps برای یافتن موقعیت هر مکانی در Asp.net بپردازیم. ...


اخبار و مقالات در فکر بکر حل تمرین مسائل برنامه نویسی از بخش کنترل ها (Windows Form) در سی شارپ

جهت مشاهده سوال و دانلود سورس آن لطفا به ادامه مطلب توجه نمایید. ...


اخبار و مقالات در فکر بکر آموزش Repository pattern در Asp.net MVC

Repository یک مخزن یا انباره ای میباشد که میتواند بعنوان لایه DAL در برنامه نویسی مورد استفاده قرار گیرد.در این مثال قصد داریم بر ...


اخبار و مقالات در فکر بکر سورس برنامه paint (نقاشی) در سی شارپ

جهت دریافت سورس زیبای برنامه paint در C# به ادامه مطلب توجه نمایید ...


اخبار و مقالات در فکر بکر وارد کردن فقط حروف فارسی و جلوگیری از ورود حروف فارسی در تکست باکس با استفاده از JQuery

در این آموزش با استفاده از الگوها از درج کاراکترهای غیر مجاز که در این اموزش هدف مدیریت حروف فارسی و انگلیسی می باشد می پردازیم. ...


اخبار و مقالات در فکر بکر آموزش ایجاد برنامه چت دوطرفه با استفاده از Socket در سی شارپ

در این برنامه با استفاده از Socket و پروتکل UDP دو برنامه جهت ارسال و دریافت پیام بصورت دوطرفه ایجاد میکنیم. لطفا به ادامه مطلب ت ...


پیوندها
5 (1)

با سلام – در این مقاله به آموزش ایجاد آدرسهای کاربر پسند در برنامه های Asp.net خواهم پرداخت User friendly بودن URLs فقط برای کاربران سایت مورد پسند نیست بلکه برای برای موتورهای جستجو و سئوی سایت نیز بسیار مفید خواهد بود. لطفا به ادامه مطلب توجه بفرمایید
گروه : Asp.net MVC
تاریخ انتشار: 1395/05/11

فکر بکر

با سلام – در این مقاله به آموزش ایجاد آدرسهای کاربر پسند در برنامه های Asp.net خواهم پرداخت
User friendly بودن  URLs فقط برای کاربران سایت مورد  پسند نیست بلکه برای برای موتورهای جستجو و سئوی سایت نیز بسیار مفید خواهد بود. لطفا به ادامه مطلب توجه بفرمایید

آموزش را با یک مثال آغاز میکنیم.
در یک پروژه معمولی جهت نمایش لیستی از محصولات بگونه ای که کاربر با کلیک بر روی هر محصول بتواند جزییات محصول مورد نظر را ببیند بشکل زیر خواهد بود.
کلاس محصولات :


public class Product
{
    public string Description { get; set; }
    public int Id { get; set; }
    public string Name { get; set; }
    public float Price { get; set; }
}

معمولا پس از اجرای برنامه لیست محصولات بصورت زیر نمایش داده خواهد شد.

slug url 01

سپس با کلیک بر روی یک محصول جزییات آن با توجه به شکل زیر نمایش داده خواهد شد.

slug url 02

لطفا به url آن دقت نمایید.

slug url 03

معمولا URL هایی که بصورت عادی نمایش داده میشوند فیلد id داده یا محصول مورد نظر را به کنترلر و اکشن ارسال میکنند.اما برای ایجاد URL های کاربر پسند نام محصول را نیز در قسمت آدرس آن نمایش میدهند. برای انجام اینکار مراحل زیر را دنبال کنید.

کلاس Product را بصورت زیر ایجاد نمایید.

  public class Product

    {

        public string Description { get; set; }

        public int Id { get; set; }

        public string Name { get; set; }

        public float Price { get; set; }

 

     

        public string GenerateSlug()

        {

            string phrase = string.Format("{0}-{1}", Id, Name);

 

          

 

            phrase = Regex.Replace(phrase, @"[^a-z0-9-\u0600-\u06FF]", "-");

            phrase = Regex.Replace(phrase, @"\s+", "-").Trim();

            phrase = Regex.Replace(phrase, @"-+", "-");

 

            return phrase;

        }

 

        private string RemoveAccent(string text)

        {

            var bytes = Encoding.GetEncoding("UTF-8").GetBytes(text);

            return Encoding.UTF8.GetString(bytes);

        }

    }

 سپس ویوی نمایش لیستی از محصولات را بصورت زیر ویرایش نمایید . تا با کلیک بر روی یک محصول URL آن بجای نمایش کد محصول که  ترکیبی  از کد  و عنوان محصول را با فرمتی که در کلاس Product تعیین کردیم نمایش داده شود.

@model IEnumerable<SeoFriendlyUrls.Models.Product>

 

<h2>Product List</h2>

 

<table >

    <thead>

    <tr>

        <th>Name</th>

        <th>Price</th>

        <th>Image</th>

    </tr>

    </thead>

    <tbody>

    @foreach (var product in Model)

    {

        <tr>

            <td><a href="@Url.Action("Details", "Products", new { id = @product.GenerateSlug() })">@product.Name</a></td>

            <td>@product.Price</td>

            <td><img src="ادرس یک تصویر درج شود"/></td>

        </tr>

    }

    </tbody>
</table>

 

در صورتیکه اکنون برنامه را اجرا کنید قطعا با خطا مواجه میشود چرا که اکشن نمایش جزییات هر محصول با ID ان محصول در ارتباط میباشد اما این در حالیست که بخشی از url ما دارای مقادیر رشته ای میباشد و اکشن قادر به تبدیل رشته به عدد نمی باشد

public ActionResult Details(int id)
{
        ...
}

 برای حل این مشکل نیاز به مدیریت RouteData میباشد.
از داخل پوشه App_Start  کلاس RouteConfig را باز نمایید و کلاس SeoFriendlyRoute  را به انتهای کلاس RouteData  اضافه نمایید.

   public class SeoFriendlyRoute : Route
    {
        public SeoFriendlyRoute(string url, RouteValueDictionary defaults, IRouteHandler routeHandler) : base(url, defaults, routeHandler)
        {
        }

        public override RouteData GetRouteData(HttpContextBase httpContext)
        {
            var routeData = base.GetRouteData(httpContext);

            if (routeData != null)
            {
                if (routeData.Values.ContainsKey("id"))
                    routeData.Values["id"] = GetIdValue(routeData.Values["id"]);
            }

            return routeData;
        }

        private object GetIdValue(object id)
        {
            if (id != null)
            {
                string idValue = id.ToString().Substring(0,1);
                
                var regex = new Regex(@"^(?<id>\d+).*$");
                var match = regex.Match(idValue);

                if (match.Success)
                {
                    return match.Groups["id"].Value;
                }
            }

            return id;
        }
    }

 

 

با استفاده از کلاس فوق مقدار ID موجود در Url را بدست می اوریم.
جهت استفاده از کلاس SeoFriendlyRoute متد RegisterRoutes از کلاس RouteConfig را بصورت زیر ویرایش نمایید.

   public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.Add("ProductDetails", new SeoFriendlyRoute("products/details/{id}",
                new RouteValueDictionary(new { controller = "Products", action = "Details" }),
                new MvcRouteHandler()));

            routes.MapRoute("Default", "{controller}/{action}/{id}", new {controller = "Home", action = "Index", id = UrlParameter.Optional}
                );
        }

 

 سپس برنامه را اجرا نمایید.

slug url 04

 

slug url 05

به url تصویر فوق دقت نمایید.

جهت عضویت در کانال فکر بکر بر روی لینک زیر کلیک نمایید :

https://Telegram.me/learningprograming

مطلب مشابهی وجود ندارد
شما اولین نفری باشید که نظر میدهید

Ncm6Ew

آموزش کار با کوکی ها (Cookie) در Asp.net core -------- آموزش رمزنگاری فایلها در asp.net core -------- مقایسه واحدهای اندازه گیری rem و em در css -------- آشنایی با مفهوم Generic در C#.net -------- نحوه خواندن اطلاعات از فایل appsetting.json در Asp.net Core -------- آموزش استفاده از CQRS و Mediator در Asp.Net Core -------- نحوه ایجاد image checkbox در html css -------- عملیات crud و WebApi در Asp.net 6 -------- آموزش ایجاد custom model binder در Asp.net core -------- آموزش استفاده از Log4net در Asp.net 5 -------- آموزش پیاده سازی UnitOfWork در Asp.net Core قسمت اول -------- پیاده سازی Repository Pattern بصورت Generic Class -------- وارد کردن فقط حروف فارسی و جلوگیری از ورود حروف فارسی در تکست باکس با استفاده از JQuery -------- سورس استفاده از کامپوننت Roxy File manager در Asp.net core -------- آموزش ساخت صفحه Page Not Found (404) در Aspnet core -------- آموزش ایجاد Tag Helper سفارشی در Asp.net core -------- آموزش نحوه ایجاد Model برای دیتابیس موجود در Entity Framework Core -------- آموزش نحوه Upload و Download در Asp.net core 2 -------- آموزش dependency injection در Asp.net core 2 -------- آموزش تحت شبکه کردن برنامه های مبتنی بر c# در sql server -------- آموزش استفاده از Bundler & Minifier در Asp.Net Core -------- مروری بر Identity در Asp.net core2.1 (بخش دوم) -------- مروری بر Identity در Asp.net core2.1 (بخش اول) -------- آموزش مبحث Single Responsibility Principle (SRP) از بخش اصول طراحی شی گرا (SOLID) -------- آموزش publish کردن برنامه های Asp.net core بر روی سرور iis -------- پیاده سازی مسیریابی با استفاده از الگوریتم پیمایش اول سطح یا جستجوی اول سطح (BFS) در سی شارپ -------- آشنایی با SignalR در Asp.net core -------- آموزش استفاده از کلاس SeedData در Asp.net Core -------- قالب سایت فروشگاهی -------- آموزش ایجاد برنامه نصب (setup) قسمت سوم -------- آموزش ایجاد برنامه نصب (setup) قسمت دوم -------- آموزش ایجاد برنامه نصب (setup) قسمت اول -------- آموزش عملیات CRUD با استفاده از Ragor Pages در Asp.net Core2.0 -------- آموزش ثبت تصویر توسط دوربین در برنامه نویسی اندروید به زبان c#.net -------- حل مساله n وزیر با استفاده از الگوریتم ژنتیک و بصورت گرافیکی -------- آموزش نمایش تصویر loading در سمت client جهت بارگزاری صفحات با حجم زیاد از سرور در asp.net mvc -------- آموزش اعتبار سنجی غیر همزمان(AsyncValidation) با استفاده از جاوااسکریپت در Asp.net mvc -------- آموزش ایجاد breadcrumb با استفاده از sitemap در MVC -------- آموزش ایجاد برنامه چت دوطرفه با استفاده از Socket در سی شارپ -------- آموزش ارسال و دریافت فایل در برنامه تحت شبکه با استفاده ار سوکت (Socket) --------

ابتدای صفحه