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

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


مطالب تصادفی
اخبار و مقالات در فکر بکر آموزش dependency injection در Asp.net core 2

تزریق وابستگی یکی از مباحث مبهم برای برنامه نویسانی که به تازگی با این عنوان آشنا شده اند می باشد.اما باید در نظر داشته باشید که ...


اخبار و مقالات در فکر بکر آموزش نحوه ایجاد Extention method در C#

در این بخش با ارائه مثال عملی تبدیل تاریخ میلادی به شمسی به آموزش Extention method می پردازیم. ...


اخبار و مقالات در فکر بکر آموزش اعتبار سنجی غیر همزمان(AsyncValidation) با استفاده از جاوااسکریپت در Asp.net mvc

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


اخبار و مقالات در فکر بکر آموزش ایجاد Tag Helper سفارشی در Asp.net core

Tag Helper یکی از ویژگیهای جدید در Asp.net Core MVC می باشد.در این آموزش شما میتوانید با استفاده از کلاسهای C# قالب عناصر html ...


اخبار و مقالات در فکر بکر آموزش ویرایش مطالب با استفاده از x-editable در Asp.net MVC

کتابخانه جاوااسکریپتی x-editable دارای قابلیتهای بسیار خوبی برای برنامه نویسان میباشد و همچنین با قابلیتی که دارد شما میتوانید ب ...


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

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


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

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


اخبار و مقالات در فکر بکر بررسی نکات امنیتی در آپلود تصاویر

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


اخبار و مقالات در فکر بکر عملیات crud و WebApi در Asp.net 6

از قبل مقالاتی با این عنوان در فکر بکر قرار گرفته شد اما در این آموزش میخواهیم با آپدیت جدید Asp.net core که آخرین نسخه آن Asp.n ...


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

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


اخبار و مقالات در فکر بکر آموزش اتصال داده ها بین دو کنترل DropDownList در Asp.netMVC بصورت Ajax

در این قسمت به آموزش اتصال داده ها بین دو کنترل DropDownList مانند آنچه که جهت نمایش شهر ها بر اساس استان انتخاب شده مورد استفاد ...


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

جهت دانلود بازی جذاب ماشین به زبان C# از فکر بکر به ادامه مطالب توجه نمایید ...


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

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


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

در این مرحله برای پروژه ای که با زبان C# طراحی کردیم یک فایل setup خواهیم ساخت.در این آموزش برای ساخت برنامه setup از نرم افزار i ...


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

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

XJ7VVN

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

ابتدای صفحه