2011-04-19 155 views
0

如果我去mysite /目錄它打破。如何解決它?ASP.NET路由問題

routes.MapRoute(
    "Localization", // Route name 
    "{lang}/{controller}/{action}/{id}", // URL with parameters 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
); 

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

routes.MapRoute(
    "Root", 
    "", 
    new { controller = "Home", action = "Index", id = "" } 
); 

回答

2

它將匹配你的第一個路徑的思考「目錄」是「郎」。您需要爲您的本地化創建約束。

以下的路徑,要正確匹配任何語言代碼前綴請求(例如en,CS,DE或EN-US,EN-GB ...)

routes.MapRoute("Localization", "{lang}/{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
    new { lang = "[a-z]{2}(-[a-z]{2})" } 
); 
+0

謝謝!這真的很酷。 – 2011-04-19 12:56:17