我目前遇到在ASP.NET MVC 4中設置路由的問題。設置ASP.NET MVC 4路由的任何URL
我試圖構建系統,能夠添加自定義路由頁面。例如,用戶可以添加新頁面並將其URL設置爲/about-us
,並且每個像這樣創建的頁面都應執行PagesController
動作GetPage
並帶有參數URL。
我試圖評論中默認的URL默認值,然後我有安裝{*url}
去new { controller = "Pages", action = "GetPage", url = UrlParameter.Optional }
,這接縫OK,但是當我嘗試使用@Url.ActionLInk("Index", "Home")
,我得到異常付諸行動的鏈接。
我已經設法解決,最後加入{*url}
路由,但現在我遇到了多個參數如/company/about-us
的URL的問題。當請求URL時,我得到異常The resource cannot be found
,我知道這是因爲我有路由的URL:{controller}/{action}
。
那麼,有沒有一個解決方案來獲得與錯誤處理程序處理它的404
旁邊這些網址到我的控制器這是我目前RouteConfig.cs
文件:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}"
//defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "simple",
url: "{controller}/{action}"
//defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "empty",
url: "",
defaults: new { Controller = "Home", Action = "Index"})
;
routes.MapRoute(
"Pages",
"{*url}",
new {controller = "Pages", action = "GetPage", url = UrlParameter.Optional}
);
}