如果我有一个路线:如何在ASP.NET MVC中使用通用路由,但处理未知操作?
routes.MapRoute(
"RouteName", // route name
"{action}", // url with parameters
new { controller = "Home", action = "Index", id = "" } // parameter defaults
);
我希望能够赶上形式的网址:
http://sitename.com/about
http://sitename.com/contact
http://sitename.com/others
时携带的名称Home控制器中存在一个动作,这显然作品所需的URL。如果我输入错误的URL,如http://sitename.com/foo,并且foo操作在主控制器中不存在,我想将应用程序指向404页面未找到,但显然如果我输入foo,它正在寻找foo家庭控制器内的行动。如果没有将所有子页面硬编码到global.asax中,是否有任何方法保持通用。如果可能,我想避免:
routes.MapRoute(
"About", // route name
"about", // url with parameters
new { controller = "Home", action = "About", id = "" } // parameter defaults
);
routes.MapRoute(
"Contact", // route name
"contact", // url with parameters
new { controller = "Home", action = "Contact", id = "" } // parameter defaults
);
谢谢。
你有没有考虑使用自定义错误页,当他们进入一个无效的URL(其他错误中)的用户,其重定向到一个特定的位置? http://msdn.microsoft.com/en-us/library/h0hfz6fc(VS.71).aspx – Omar 2009-12-21 17:36:05
是啊,我还说到web.config中,但愚蠢的将它设置为仅限远程。对不起,混音。这个问题可以关闭。 – user135383 2009-12-21 17:44:20