MVC 中的屬性路由
隨著路由定義的經典方式 MVC WEB API 2 和 MVC 5 框架介紹 Attribute routing
:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// This enables attribute routing and must go before other routes are added to the routing table.
// This makes attribute routes have higher priority
routes.MapMvcAttributeRoutes();
}
}
對於控制器內具有相同字首的路由,可以使用 RoutePrefix
屬性為控制器內的整個操作方法設定公共字首。
[RoutePrefix("Custom")]
public class CustomController : Controller
{
[Route("Index")]
public ActionResult Index()
{
...
}
}
RoutePrefix
是可選的,它定義了 URL 的一部分,該部分以控制器的所有操作為字首。
如果你有多個路由,則可以通過捕獲操作作為引數來設定預設路由,然後將其應用於整個控制器,除非在覆蓋預設路由的某些操作方法上定義特定的 Route
屬性。
[RoutePrefix("Custom")]
[Route("{action=index}")]
public class CustomController : Controller
{
public ActionResult Index()
{
...
}
public ActionResult Detail()
{
...
}
}