2016-02-12 160 views
0

我被某人問過,假設我已經爲route.config中的URL定義了路由,並且我已經在基於屬性的路由中定義了相同的路由。那麼在每種情況下誰的優先級都會更高。如果我們可以在route.config中實現相同的功能,那麼基於屬性的路由的用途是什麼?路由配置與基於屬性的路由mvc其優先級更高

回答

1

然後,其優先級將在每種情況下更多。

這取決於您是否在傳統路線之前或之後調用routes.MapMvcAttributeRoutes()擴展方法。例如:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    ... 
    routes.MapMvcAttributeRoutes(); //Attribute routing 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 
} 

在這種情況下,基於屬性的路由將首先添加到路由表中並將優先。

如果我們可以實現在route.config中相同的 ,那麼基於屬性的路由的用途是什麼?

屬性路由爲您提供了相當多的靈活性,並將路由放置在實際使用它們的操作旁邊。但這確實是一個偏好問題。微軟已經添加了基於屬性的路線,以便與傳統方法相比,在應用程序中定義路線的替代方法。