在路由表中找不到操作?

时间:2010-03-18 11:03:57

标签: asp.net-mvc-2 asp.net-mvc-routing

刚刚开始我的第一个MVC 2.0 .net应用程序。我设置了一些默认页面,如:

/Loa/Register
/Loa/About

但是当我请求/Loa/sdfqsdf(随机字符串)时出现"The resource cannot be found."错误,如何将此不存在的操作重定向到默认操作?

就像“未找到操作”默认操作一样?

THX!

1 个答案:

答案 0 :(得分:1)

使用路线

您可以定义多个路由(在现实MVC应用程序中也很常见),因为某些路由具有与默认路由不同的特定设置。特别是如果你想做一些体面的SEO。

routes.MapRoute(
    "DefaultRoute",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = string.Empty },
    new { action = "Register|Index|About" } // route constraint that limits the actions that can be used with this route
);

routes.MapRoute(
    "InvalidRoutes"
    "{*dummy}",
    new { controller = "Home", action = "Nonexisting" }
);

如果您要在路线表中添加其他路线,请确保将InvalidRoutes定义为最后一条。