我有一個全新的asp.net mvc 3項目。我沒有以任何方式修改路線。我有一個叫做PageController
的控制器,另一個控制器叫ContentController
。爲什麼在ASP.NET MVC 3中,默認路由對於名爲「ContentController」的控制器不起作用?
當我瀏覽到domain.com/Page時,頁面控制器上的Index操作按預期執行並顯示Index視圖。
當我瀏覽到domain.com/Content時,我得到一個404錯誤。如果我瀏覽到domain.com/Content/Index,那麼它工作正常。
如何解決此單一路線問題?
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
我嘗試添加一個額外的路線:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Content", // Route name
"Content/{action}/{id}", // URL with parameters
new { controller = "Content", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
但額外的路徑沒有改變應用程序的行爲。
這可能是什麼原因造成的?
只是爲了澄清,你可以添加代碼爲'ContentController' –
@MatthewAbbott - 這是通過腳手架全部產生。通過實施Nathan的答案,我能夠解決這個問題。 – quakkels