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

تهران آی تی / برنامــه نویــسـی / Asp.Net MVC / آموزش Asp.Net MVC آموزش Routing

آموزش 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();
}

جستجو کنید

طراحی و پیاده سازی پروژه های طراحی سایت دانشجویی

انجام، اجرا و طراحی پروژه های طراحی سایت برای دانشجویان با HTML CSS PHP ASP.NET JAVA و ... با کمترین هزینه. برای مشاهده نمونه کارها و یا دریافت مشاوره رایگان از تیم طراحی سایت تهران آی تی با ما در تماس باشید. ما بهترین پروژه های طراحی سایت را با حداقل هزینه برای شما طراحی میکنیم - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

مطالب مرتبط

لطفا از مطالب مرتبط با این پست دیدن فرمایید

جــذاب های هفته

از پربازدیدترین مطالب تهران آی تی در هفته ای که گذشت دیدن فرمایید

باورکردنی نیست فقط با 300 هزار تومان

طراحی سایت شما + طراحی اپلیکیشن هدیه و رایگان
این یک حراج است در مدت زمان محدود - شرکت های زیادی سایت های ارزان طراحی میکنند اما آیا کیفیت لازم را دارا هستند؟ طراحی سایت ارزان به همراه اپلیکیشن رایگان هدیه برای اولین بار توسط تهران آی تی مخصوص سازمان ها و کسب و کار های کوچک و بزرگ و حتی جدید تیم طراحی سایت تهران آی تی در کنار شماست تا شناخته شوید - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

پشتیبانی 24 ساعته

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