2011-09-26 54 views
1

我有途徑產生:不正確的URL由URL.Action和Html.ActionLink

routes.MapRoute(
    "NewsRoute", 
    "News/{newsId}/{newsTitle}", 
    new { 
     controller = "News", 
     action = "News", 
     newsId = UrlParameter.Optional, 
     newsTitle = UrlParameter.Optional 
    } 
); 
routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "Home", action = "Home", id = UrlParameter.Optional } // Parameter defaults 
); 

與用法:

@Url.Action("News", "News", new { newsId = "", newsTitle = "" }) 

我想有 「/新聞」 網址,而是「/新聞/新聞「正在生成。我猜是使用默認路由。 所以問題是爲什麼NewsRoute被跳過?

+0

看起來像禁止使用 – bogert

回答

1

的解決方案是用2個可選參數的路線和動作拆分到兩個獨立的動作:

routes.MapRoute(
    "NewsRoute", 
    "News", new { 
     controller = "News", 
     action = "Index" 
    } 
); 

routes.MapRoute(
    "Specific News", 
    "News/{id}/{title}", 
    new { 
     controller = "News", 
     action = "News", 
     title = UrlParameter.Optional 
    } 
); 
+0

請標明此爲答案,如果問題得以解決2個可選paratemers –