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

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


مطالب تصادفی
اخبار و مقالات در فکر بکر در این مقاله میخواهیم به نمایش partial view در mvc با استفاده از jquery بپردازیم لطفا به ادامه مطلب توجه نمایید

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


اخبار و مقالات در فکر بکر سورس برنامه ب.م.م و ک.م.م در c++

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


اخبار و مقالات در فکر بکر سورس استفاده از کامپوننت Roxy File manager در Asp.net core

در این سورس شما با نحوه استفاده از کامپوننتهای ckeditor و Roxy File manager در Asp.net core اشنا خواهید شد. جهت دانلود بر روی ادا ...


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

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


اخبار و مقالات در فکر بکر آموزش کامل Web Api2 در MVC با عملیات CRUD

با سلام خدمت تمامی کاربران فکر بکر در این مقاله سعی نمودم تا با ارائه مثال عملی به آموزش کامل Web Api بپردازم. قبل از هرچیز باید ...


اخبار و مقالات در فکر بکر آشنایی با Asp.net mvc6 بصورت پروژه عملی #1

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


اخبار و مقالات در فکر بکر آموزش ثبت تصویر توسط دوربین در برنامه نویسی اندروید به زبان c#.net

در این آموزش به نحوه ثبت تصویر و ذخیره آن در حافظه گوشی با سیستم عامل اندروید با زبان برنامه نویسی سی شارپ (C#.net)خواهیم پرداخت. ...


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

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


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

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


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

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


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

در این برنامه به حل مساله کتاب جهت ذخیره در فایل متنی با استفاده از کادر محاوره ای savefileDialog می پردازیم . لطفا به ادامه مطل ...


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

در این برنامه سورس notepad در c# را بصورت رایگان برای شما کاربران عزیز در فکر بکر جهت دانلود قرار دادیم ...


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

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


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

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


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

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

rXN7zr

آموزش پیاده سازی 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) -------- آموزش رسم نمودار در Asp.net -------- آموزش ایجاد مگا منو -------- آموزش استفاده از Grid mvc در Asp.net mvc -------- پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش چهارم) -------- پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش سوم) -------- پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش دوم) -------- پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش اول) -------- بررسی نکات امنیتی در آپلود تصاویر -------- آموزش async - await در یک مثال عملی -------- قالب پنل ادمین --------

ابتدای صفحه