PDA

View Full Version : ویژگی جدید routing در mvc5



kavayo
جمعه 16 خرداد 1393, 18:48 عصر
Routing یک ویژگی است که ما میتوانیم نوع نمایش یک لینک رو در ان مشخص کنیم . حال در mvc5 قابلیتی جدید بدان افزوده شده است ما در mvc4 تنظیمات مربوط به routing رو در کلاس RoutConfig انجام میدادیم ولی در نسخه mvc5 میتوانیم در هر جایی که لینکی قرار است وارد شود ان را طبق خواسته خودمان تغییر دهیم .
حال برای شروع کار بایستی یک پروژه در visual studio2013 ایجاد کنیم :
Start Page --> New Project > Templates > Visual C#‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎ > Web > ASP.NET Web Application > PressOK > Select MVC > Press OK
بعد بایستی به کلاس RouteConfig برویم و و درمتد RegisterRoutes بنویسیم :



routes.MapMvcAttributeRoutes();

حال با ویژگی [Route] میتوانیم نام مسیر را تغییر دهیم :

[RoutePrefix(“user”)] // با این کار هر جای این کنترلر ما از ویژگی [Route] استفاده کردیم رشته user به صورت پیش فرض به ابتدای لینک اضافه میشود
Public class HomeController:Controller
{[Route] //آدرس url به user/ تغییر میابد
Public ActionResult Index()
{

}
[Route(“ about”)] //آدرس url به user/about تغییر میابد
Public ActionResult About()
{

}
[Route(“ product/id?”)] // آدرس url به user/product/id value تغییر میابد حتی ما در اینجا میتوانیم با نوشتن [Route(“ product/{id:int}”)] مقادیر id رو فقط به نوع int محدود کنیم
Public ActionResult GetID(int? id)
{

}
}

ما حتی میتوانیم لینک های موجود در view را نیز روت کنیم :


<a href="@Url.RouteUrl("mainmenu")">Main menu</a>

[Route("menu", Name = "mainmenu")] آدرس url به user/menu تغییر میابد
public ActionResult MainMenu() {
return View("About");
}
و برای Area نیز میتوانیم این کار رو انجام بدیم

bitcob589
جمعه 16 خرداد 1393, 18:59 عصر
اگر امکان دارد سمپل توضیحاتی که در پست اول گذاشته اید بگذارید

kavayo
شنبه 17 خرداد 1393, 18:33 عصر
این هم کد اش
https://www.mediafire.com/?y4b4t3ldim7pm1a

sunn789
شنبه 17 خرداد 1393, 20:57 عصر
از اینکه این کد ها رو گذاشتی متشکر و از اینکه این قابلیت رو من هم دونستم بسیار خوشحال م اما یه خواهش : مثل آموزشهای مرحله به مرحله Asp.net که توی سایتش گذاشته اگه توضیح بدی من هم که ضریب هوشیم کمتره بهتر یاد میگیرم

bitcob589
سه شنبه 20 خرداد 1393, 15:47 عصر
مفهوم قسمت زیر چیست

[Route("books/{isbn?}")]

kavayo
چهارشنبه 21 خرداد 1393, 11:46 صبح
isbn پارامتر اکشن مورد نظر است است که مقدار آن میتواند در آدرس ظاهر شود که ما حتی میتوانیم آن را محدود به نوع خاصی کنیم مثلا فرض کنید مقدار عددی 2 به عنوان پارامتر این اکشن قرار میگیرید حال با فراخوانی این اکشن آدرس books/2 در آدرس بار ظاهر میشود