如何更改请求路径

时间:2014-07-14 02:30:03

标签: c# asp.net-mvc glimpse

This SO answer为处理404错误提供了一个优雅的解决方案。我修改了该答案中给出的代码,以处理400个错误(当有人为我的网站提供“潜在危险”字符时发生的响应)。我的代码如下所示:

/// <summary> Handle "page not found" (HTTP 404) and "dangerous/invalid syntax" (HTTP 400) errors. </summary>
protected void Application_EndRequest()
{
    // This code is adapted from: https://stackoverflow.com/a/9026941/1637105
    var code = Context.Response.StatusCode;
    if (code == 404 || code == 400) {
        Response.Clear();

        var rd = new RouteData();
        rd.DataTokens["area"] = "AreaName"; // In case controller is in another area
        rd.Values["controller"] = "Errors";
        rd.Values["action"] = "NotFound";

        IController c = new ErrorsController();
        c.Execute(new RequestContext(new HttpContextWrapper(Context), rd));
    }
}

我的问题是,如果我安装了一瞥,那么当我收到400错误时(例如,如果我导航到http://example.com/HiBob :),我会得到:

  

Glimpse.Core.dll中出现'System.NullReferenceException'类型的异常

由于对通过此代码重新路由的404错误似乎没有任何问题,我认为在请求路径上瞥见了。

在我发送新请求以便由MVC管道执行之前,我可以在此代码中对请求路径进行URL编码吗?

编辑:我将glimpse NuGet包更新到最新版本,问题似乎已经消失。生活很好。我是个白痴(因为在抱怨它不起作用之前没有确定我有最新的东西)。

0 个答案:

没有答案