【发布时间】:2011-01-02 15:58:00
【问题描述】:
我正在尝试启用 MVC 中的默认路由。
我希望每个 404 请求都重定向到 DefaultController DefaultRout()
我找到How can i make a catch all route to handle '404 page not found' queries for ASP.NET MVC?
但是 {*url} 不起作用,我得到 404 并且没有重定向到默认页面。
我的代码:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
routes.IgnoreRoute("{resource}.ascx/{*pathInfo}");
routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
routes.IgnoreRoute("{resource}.gif/{*pathInfo}");
//http://localhost:4775/BW/A/Tasks
routes.MapRoute("Pages", "A/{controller}", new { controller = "Tasks", action = "InitPage" });
routes.MapRoute(
"404-PageNotFound",
"{*url}",
new { controller = "Default", action = "DefaultRout" }
);
}
我错过了什么?
谢谢
拉斐尔
【问题讨论】:
-
控制器和动作需要指向实际的控制器和动作,而不是分别指向
Default和DefaultRout。 -
只是为了背靠@Dan,我的回答假设您有一个名为“defaultcontroller”的控制器,带有一个“defaultroute”方法。我通常在“errorcontroller”中使用“notfound”方法
-
我有一个带有 'defaultroute' 方法的默认控制器,但它永远不会去那里。而且我不想使用 customErrors。
标签: asp.net-mvc model-view-controller