有一天我會明白的路由,但是這是我有:另一個MVC路由問題
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{LicenceCode}", // URL with parameters
new { controller = "Home", action = "Index", LicenceCode = UrlParameter.Optional } // Parameter defaults
);
}
如果我去http://localhost一切正常
如果我去http://localhost/Home/Index/1234一切正常
如果我去http://localhost/1234它404的
我試圖菲爾哈克的路線調試器,但因爲它拋出一個404路線調試器不工作。
什麼我必須做在的RegisterRoutes爲http://localhost/1234工作
這是除了我目前的路線嗎?我有其他控制器,所以我需要能夠去http:// localhost/basket例如 – Jon 2011-06-03 11:46:20
@Jon,你不能。您如何期望路由引擎在'/ foo'和'/ basket'之間消除歧義,其中第一種情況下'foo'代表許可代碼,第二種情況下控制器?這根本沒有意義。你可以做的是指定一個正則表達式路由約束,如果你的許可證號碼遵循某種模式,那麼第四個參數指向MapRoute。通過這種方式,您可以在默認路由之前擁有許可證路由,並且如果約束得到滿足,許可證路由將匹配。 – 2011-06-03 12:37:46