2014-12-30 126 views
3

以下幾點有什麼區別?屬性路由差異?

[Route("movies/genre/{genre}")] 
public ActionResult ViewByGenre(string genre="action") 
在此statment

[Route("movies/genre/{genre}")] 
public ActionResult ViewByGenre(string genre="action") 

genre參數

而不是

[Route("movies/genre/{genre=action}")] 
public ActionResult ViewByGenre(string genre) 
+0

爲什麼不試試看?你有什麼問題使用它的方式之一? – mybirthname

回答

4

不在路線可選,只有ViewByGenre功能將穩定物價它。

這裏

[Route("movies/genre/{genre=action}")] 
public ActionResult ViewByGenre(string genre) 

你是說genre參數是在路由可選。如果到達空值,則需要action值。 ViewByGenre函數總是應該有類型參數增值的

的文檔

參考here這樣你在做屬性的路由。其優點是,通過屬性路由,您可以更多地控制應用程序中的URI,當您在代碼中編輯某些內容時不會損壞其他路線。 在另一邊的公約基地規則的一個例子是,當你決定你在RouteConfig.cs規則文件這樣

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapMvcAttributeRoutes(); 

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

好的,我明白了。我還有其他幾個問題。 – FaizanRabbani

+0

如果您需要幫助我在這裏 – faby

+0

那麼'屬性路由'和基於會議的路由之間的主要區別是什麼?我應該去哪一個? – FaizanRabbani