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

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


مطالب تصادفی
اخبار و مقالات در فکر بکر آموزش ایجاد برنامه نصب (setup) قسمت سوم

در مراحل قبلی نحوه ایجاد فایل configuration و فایل نصب sql server و همچنین ایجاد setup برای نرم افزاری که باید در سیستم مشتری نصب ...


اخبار و مقالات در فکر بکر مروری بر Identity در Asp.net core2.1 (بخش اول)

ASP.NET Core Identity یک سیستم جامع جهت مدیریت کاربران و نقشها و همینطور ورود و خروج در برنامه های ASP.NET Core می باشد. کاربرا ...


اخبار و مقالات در فکر بکر نحوه خواندن اطلاعات از فایل appsetting.json در Asp.net Core

فایل appsetting در نسخه های core معادل فایل webconfig در نسخه های قدیمی تر می باشد که برای پیکر بندی تنظیمات کلی پروژه مانند تنظی ...


اخبار و مقالات در فکر بکر مقایسه واحدهای اندازه گیری rem و em در css

وقتی صحبت از واحدهای اندازه گیری در CSS به میان می آید، ما انتخاب های خوبی داریم. در دنیای امروزی طراحی‌های واکنش‌گرا، واحدهای ن ...


اخبار و مقالات در فکر بکر فایل pdf آموزش کامپوننت Backgroundworker برای برنامه نویسی بصورت همزمان

با استفاده از کامپوننت BackgroundWorker شما میتوانید به برنامه نویسی و اجرای کارهای زمانبر در یک Thread دیگر و بصورت موازی بپرداز ...


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

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


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

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


اخبار و مقالات در فکر بکر طراحی سایت با HTML 6

ورژن 6HTML نسخه ی توسعه یافته HTML ها است که دارای NameSpaces با ساختار XML می باشد. از ویژگی های مهم NameSpaces این است که با ا ...


اخبار و مقالات در فکر بکر آموزش نحوه استفاده از Ckeditor با قابلیت آپلود تصاویر در Asp.net mvc

ckeditor یک ویرایشگر قدرتمند جهت ایجاد متون با جلوه های خاص و هینطور درج تصاویر و بسیاری از قابلیتهای دیگری میباشد که مورد توجه ب ...


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

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


اخبار و مقالات در فکر بکر آموزش تحت شبکه کردن برنامه های مبتنی بر c# در sql server

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


اخبار و مقالات در فکر بکر آموزش آپلود فایل بصورت Ajax در Asp.net MVC

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


اخبار و مقالات در فکر بکر آموزش ایجاد مگا منو

مگا منو برای سایتهایی که دارای موضوعات زیادی در قسمت دسته بندی مطالب هستند بسیار پر کاربرد می باشد چرا که با توجه به عرض زیاد مگا ...


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

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


پیوندها
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

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

O9DsDU

آموزش کار با کوکی ها (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) --------

ابتدای صفحه