آموزش Asp.Net MVC آموزش Routing

از Routing برای مسیردهی یا آدرس دهی اکشن ها استفاده میشود و در این مطلب قصد داریم به آموزش کامل Routing در MVC بپردازیم پس با ما همراه باشید. یکسری آدرس ها و مسیر ها توسط MVC خیلی دوست داشته میشوند، مثلا اگر کنترلری به نام Home و اکشنی به نام Index ایجاد کنید، MVC آن را به عنوان صفحه نخست یا همان Home Page سایت در نظر میگیرد. حال میخواهیم این تنظیمات را تغییر دهیم و یا اینکه تنظیمات جدیدی را به آن اضافه کنیم. به زبان ساده میخواهیم آدرس ها و مسیر های جدیدی را برای MVC تعریف کنیم.

مکان تنظیمات Routing کجاست ؟

لوکیشن تنظیمات Routing یا بهتر است بگوییم فایل RouteConfig در پوشه App_Start میباشد و با وارد شدن به پوشه App_Start میتوانید به فایل RouteConfig دسترسی داشته باشید و آن را ویرایش کنید.

مکان تنظیمات Routing

مکان تنظیمات Routing

تنظیمات فایل RouteConfig

وقتی وارد فایل RouteConfig بشوید یک MapRoute وجود دارد. در این MapRoute گفته شده، در URL ها ابتدا باید نام کنترلر و بعند نام اکشن و بعد مقدار آی دی بیاید.

url: "{controller}/{action}/{id}",

ولی اگر این موارد در Url وارد نشد به کنترلری به نام Home و  اکشنی به نام Index وارد شو

defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

و ما میتوانیم این MapRoute را تغییر دهیم و یا اینکه MapRoute هایی را بنا به نیاز خود ایجاد کنیم. ساختار کلی MapRoute باید به شکل زیر باشد.

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

حال اگر بخواهیم MapRoute برای کنترلری به نام Authentication با اکشن Login بنویسیم. به صورتی که Url ما به این صورت باشد WebSite Name / Login به صورت زیر اقدام میکنیم.

routes.MapRoute(
    name: "Login",
    url: "{Login}",
    defaults: new { controller = "Authentication", action = "Login"}
);

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

توجه داشته باشید که اولویت با MapRoute هایی است که در کد های بالاتری نوشته شده اند.

ایجاد MapRoute به روش جدید و حرفه ای

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

در مرحله اول قبل از اولین MapRoute یا همان MapRoute دیفالت تابع زیر را فراخوانی میکنیم.

routes.MapMvcAttributeRoutes();

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

[Route("My Route")]

توجه داشته باشید وقتی یک اکشن را Route میکنید آدرس قبلی آن حذف میشود و دیگر در دسترس نیست.

  • مثال شماره ۱ : Route ای بنویسد که اکشن مورد نظر را در این آدرس باز کند : WebSite Name / Test
[Route("Test")]
public ActionResult ActionName()
{
    return View();
}
  • مثال شماره ۲ : Route ای بنویسد که اکشن مورد نظر را در این آدرس باز کند : WebSite Name / Test1 / Test2 / Test3
[Route("Test1/Test2/Test3")]
public ActionResult ActionName()
{
    return View();
}
  • مثال شماره ۳ : Route ای بنویسد که اکشن مورد نظر ۲ مقدار ورودی به تام های Name و Age را در مسیر GetData بگیرد
[Route("GetData/{name}/{age}")]
public ActionResult ActionName(string name, int age)
{
    ViewBag.Name = name;
    ViewBag.Age = age;
    return View();
}
  • مثال شماره ۴ : مثال بالا را با فرض اینکه مقدار ورودی age اختیاری یا nullable است بنویسید
[Route("GetData/{name}/{age?}")]
public ActionResult ActionName(string name, int? age)
{
    ViewBag.Name = name;
    ViewBag.Age = age;
    return View();
}

کلمات کلیدی - تگ‌ها

از کلمات کلیدی و تگ‌های مربوط به آموزش Asp.Net MVC آموزش Routing دیدن فرمایید.

تصویر کلمات کلیدی مرتبط با آموزش Asp.Net MVC آموزش Routing

مشاهده در آپارات یا یوتیوب

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

تماشای ویدیوی آموزش Asp.Net MVC آموزش Routing در آپارات و یوتیوب

اشتراک‌گذاری با یک کلیک

با یک کلیک، محتوای این صفحه را در شبکه‌های اجتماعی، ایمیل یا پیام‌رسان‌های مورد علاقه‌تان به‌سرعت به اشتراک بگذارید.

اشتراک‌گذاری صفحه آموزش Asp.Net MVC آموزش Routing در شبکه‌های اجتماعی

نظرات شما برای ما ارزشمند است

متاسفانه تاکنون پیامی برای این مطلب ثبت نشده است. شما اولین شخصی باشید که پیام می‌گذارد.

نظرات کاربران

فرم افزودن دیدگاه

با ارسال نظرات خود ما را در ایجاد محتوای بهتر کمک کنید.

با خدمات تهران آی تی آشنا شوید

تهران آی تی با افتخار خدمات زیر را ارائه می‌دهد.