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()
{
...
}
}