如何调试“路由表中的路由与提供的值不匹配”。在ASP.NET MVC中

时间:2009-05-25 18:55:29

标签: asp.net-mvc

我似乎一直遇到这个错误:

  

路由表中没有路由与提供的值匹配。

     

在执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

堆栈跟踪只是一堆MVC垃圾。

显然我正在查询不存在的路由,但是如何找到它实际尝试查询的路由?我很想知道实际的URL和HTTP方法。我怎么能发现这个?

(我习惯于Django,其中尝试的URL是异常的一部分,并且更喜欢比查看我的页面来源并找出它更有效的方法。)

3 个答案:

答案 0 :(得分:13)

答案 1 :(得分:8)

您可以使用MvcContribRouteDebugger实用程序类来更好地查看处理请求的路由。

您需要做的就是添加对MvcContrib的引用,并将此代码添加到Global.asax

RegisterRoutes(RouteTable.Routes);
RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);

答案 2 :(得分:3)

您可以使用return Redirect(“/ Home / index”)代替

return RedirectToAction("Home","index");

或者

我的解决方案是在路径值参数更改中传递区域:

return RedirectToAction("ActionName", "ControllerName");

为:

return RedirectToAction("ActionName", "ControllerName", new { area = "AreaName" })