MVC 5'te Öznitelik Yönlendirme
MVC 5'ten önce routes.MapRoute(...)RouteConfig.cs dosyasını çağırarak URL'leri belirli eylemlere ve denetleyicilere eşleyebilirsiniz . Bu, ana sayfanın url'sinin saklandığı yerdir ( Home/Index). Ancak, varsayılan rotayı aşağıda gösterildiği gibi değiştirirseniz,
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
bunun diğer işlemlerin ve denetleyicilerin URL'lerini etkileyeceğini unutmayın. Örneğin, adlandırılmış bir denetleyici sınıfınız varsa ExampleControllerve bunun içinde bir eylem yöntemi çağrıldıysa DoSomething, ExampleController/DoSomethingvarsayılan yol değiştiği için beklenen varsayılan url artık çalışmayacaktır.
Bunun için bir geçici çözüm, varsayılan yolla uğraşmamak ve RouteConfig.cs dosyasında diğer eylemler ve denetleyiciler için yeni yollar oluşturmaktır.
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Example",
url: "hey/now",
defaults: new { controller = "Example", action = "DoSomething", id = UrlParameter.Optional }
);
Şimdi sınıfın DoSomethingeylemi ExampleControllerurl ile eşlenecek hey/now. Ancak, farklı eylemler için rotalar tanımlamak istediğiniz her seferde bunu yapmak yorucu olabilir. Dolayısıyla, MVC 5'te artık url'leri böyle eylemlerle eşleştirmek için öznitelikler ekleyebilirsiniz,
public class HomeController : Controller
{
// url is now 'index/' instead of 'home/index'
[Route("index")]
public ActionResult Index()
{
return View();
}
// url is now 'create/new' instead of 'home/create'
[Route("create/new")]
public ActionResult Create()
{
return View();
}
}