شنبه , ۳۰ شهریور ۱۳۹۸
خانه - #C - مسیریابی در ASP.NET Core

مسیریابی در ASP.NET Core

ASP.NET-CORE-Routing

مسیریابی در ASP.NET Core به مکانیسمی گفته می شود که آدرس کامل را از درخواست Http  گرفته و با بررسی آن درخواست را به controller و action  مورد نظر هدایت می کند.

ASP.NET Core Routing

وقتی که کاربر یک url را از سرور درخواست می کند.آدرس درخواست وی به وسیله سیستم مسیر یابی دریافت می شود. سیستم مسیریابی تلاس میکند تا الگوی آدرس را با مسیر هایی که برایش تعریف کرده اند مقایسه کرده و مسیر را پیدا کند. بعد از پیدا کردن الگو و بیرون کشیدن نام controller و action ها درخواست به سمت اکشن مربوطه می رود. اگر برای آدرس درخواست الگوی مناسبی پیدا نشود. سیستم خطای 404 را بر میگرداند.

ASP.NET Core Routing Flow

انواع مسیر یابی

در Asp.net Core دو نوع مسیر یابی داریم.

Types of Routing

مسیریابی بر اساس قرارداد

در این حالت قرارداد های مسیریابی که هر کدام تعیین میکنن که چ الگویی به عنوان الگوی آدرس صحیح شناخته شود. تعریف می شوند. این تعریف در فایل Startip.cs انجام می شود.

در تصاویر پایین نمونه Conventions based Routing Configuration & Mapping را میبینید.

 

Conventions based Routing Configuration
Conventions based Routing Mapping

مسیریابی به کمک صفت ها

در این روش مسیریابی و تعریف مسیر ها به کمک attribute هایی که در controller و action ها نوشته می شود مشخص میشوند. بعد از مشخص کردن آنها با وارد کردن آدرس مطابق الگویی که در attribute  نوشته شده است . action  مورد نظر صدا زده می شود.

ASP.NET Core Attribute Routing

قابلیت Attribute Routing Tokens

یکی از ویژگی های خوب سیستم routing فریم ورک Asp .Net Core قابلیت انعطاف آن همانند سیستم Asp.Net MVC5 است.در این سیستم در الگوی آدرس ها می تواند از Token  های معنادار استفاده کرد تا مقدار آنها با مقادیر موجود در Route Table به صورت خودکار جایگزین شود.

ASP.NET Core Attribute Routing Token

مسیریابی ترکیبی

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

محدودیت های مسیرها

محدودیت های مسیریابی برای کنترل و محدود کردن داده ها و پارامترهایی هستند که به action پاس داده می شوند. به عنوان مثال وقتی شما به یک Id از نوع Int نیاز دارید. می توانید آن محدودیت را با نوشتن نام پارامتر و نوع آن در بین علامت {} ایجاد کنید.

در زیر لیست محدودیت های اصلی asp که میتوانید از آنها استفاده کنید را مشاهده می کنید.

  1. :int
  2. :bool
  3. :datetime
  4. :decimal
  5. :guid
  6. :length(min,max)
  7. :alpha
  8. :range(min,max)

پارامترهای اختیاری ( Optional Parameters )

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

You can define your route parameter as optional in routes by adding a question mark (?) to the parameter’s constraint as given below:

app.UseMvc(routes =>{

routes.MapRoute( template: “{controller}/{action}/{id:int?}”);

});

مقادیر پیفرض

هنگام تعریف مسیرها و اضافه کردن آنها به سیستم routing می توان برای المان هایی نظیر controller و action مقدار پیشفرض تعیین کرد تا هنگامی که مقدار آنها وارد نشد به صورت خودکار مقدار بگیرند.

app.UseMvc(routes => { routes.MapRoute( template: “{controller=Home}/{action=Index}/{id:int?}”); });

درباره ی محمد لطفی

برنامه نویس و توسعه دهنده .Net هستم. از یادگیری و آموزش لذت می برم. برنامه نویسی رو از دانشگاه شروع کردم و الانم در نیک آموز مهارت های خودم رو توسعه می دم.

همچنین ببینید

چرخه عمر درخواست ها در ASP MVC

در این مقاله به بررسی طول عمر و اتفاقاتی که برای یک درخواست Http از …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *