【问题标题】:Is there a way I can debug a route in ASP. MVC5? [duplicate]有没有办法可以在 ASP 中调试路由。 MVC5? [复制]
【发布时间】:2016-03-24 00:44:41
【问题描述】:

过去,我使用过一些我认为是 Microsoft 的 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.

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-5


    【解决方案1】:

    我知道 OP 已经晚了,但对于其他尝试调试 404 错误的人来说,我已经找到了一种方法来拦截路由结果并查看它为什么找不到资源。

    Global.asax.cs 中像这样覆盖初始化:

        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 上测试过了。

    我最初在 Paul Evans 的另一个回答中遇到了这种方法,这是链接(感谢 @porcus 找到它):stackoverflow.com/a/25466524

    【讨论】:

    • 这是另一个 SO 答案的链接,您可能从以下位置获得了该代码 sn-p:stackoverflow.com/a/25466524 我赞扬您尝试提供归属。
    • @porcus 这确实是原始答案,我会更新我的答案以链接到它,谢谢。
    【解决方案2】:

    看看Glimpse。它附带的模块之一是 Routes 模块,它允许您查看有关已检查的路由、传入的值以及匹配的值(如果有)的详细信息。

    【讨论】:

    • 如果我的路由被某些控制器匹配,这很好,但是如何调试导致 404 错误的路由?
    • @AdrianGrigore 查看我添加的答案,它可能会帮助您解决 404 错误。
    • 如果路由出错并且您试图找出原因,Glimpse 并没有真正的帮助。
    猜你喜欢
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 2018-05-01
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多