过去我用微软的Scott Hanselman的一些代码.不过现在我使用的是MVC5,我不认为该代码是有效的.
有没有办法我可以跟踪在MVC5中采取的路线,以便我可以知道为什么我看到消息像:
HTTP Error 404.0 - Not Found The resource you are looking for has been removed,had its name changed,or is temporarily unavailable.
解决方法
我知道OP已经晚了,但是对于其他任何人尝试调试404错误,我发现了一种拦截路由结果的方式,看看为什么找不到资源.
在Global.asax.cs中覆盖Init,如下所示:
public override void Init() { base.Init(); this.AcquireRequestState += showRouteValues; } protected void showRouteValues(object sender,EventArgs e) { var context = HttpContext.Current; if (context == null) return; var routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(context)); }
routeData变量将保存正在被解释的路由信息.我已经在MVC5上测试过了.
我最初在保罗·埃文斯的另一个答案中碰到这种方法,这是链接(感谢@porcus找到它):stackoverflow.com/a/25466524