1

使用默认路由

  routes.MapRoute(
      "Admin",                                              // Route name
      "Admin/{action}",                           // URL with parameters
      new { controller = "Admin", action = "Index" }  // Parameter defaults
  );

我们的应用程序的许多路由(大约 90%)都在工作,所以这很好。

现在当用户进入时/logon/strangeroute,MVC offcourse 会抛出一个错误,因为strangeroute我的logoncontroller.

使用中的捕获所有异常处理程序global.asax.cs,我无法找到路由错误(我称之为路由错误)和另一个错误(在代码的其余部分中抛出)之间的区别。

我想区分 betweek 错误的类型,因为当路由出现错误时,它大部分时间是 404 错误,我想将用户重定向到 404 页面而不是正常的、通用的错误页面。

一种方法是为所有页面创建所有路由并关闭现有的默认路由并实现一个包罗万象的路由,但我不希望为每个 url 创建单独的路由。

还有另一种方法吗?

4

1 回答 1

1

测试您捕获的异常是否是HttpException,如果是,则对其使用GetHttpCode方法查看是否为 404。

于 2012-06-29T12:39:13.873 回答