如何摆脱ASP.NET MVC中的HTML错误报告?

use*_*348 6 error-handling asp.net-mvc

我只需要纯文本中的错误消息.但ASP.NET正在从每个错误中输出一些HTML报告.

我有一个jquery ajax调用,当一个错误被抛出时,我得到了所有的废话到客户端.

我创建了一个过滤器属性,但没有帮助.

public class ClientErrorHandler : FilterAttribute, IExceptionFilter
{
    public void OnException(ExceptionContext filterContext)
    {
        var responce = filterContext.RequestContext.HttpContext.Response;
        responce.Write(filterContext.Exception.Message);
        responce.ContentType = MediaTypeNames.Text.Plain;
        filterContext.ExceptionHandled = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

我看到了这个

而且我想看看这里有什么 filterContext.Exception.Message

mar*_*ind 2

在我看来,无法正确处理异常的原因是因为它发生在 MVC 管道之外。如果您查看您发布的代码中的堆栈跟踪,则没有对 System.Web.Mvc 代码的引用(发生异常时触发异常过滤器是从 调用的ControllerActionInvoker.InvokeAction)。

堆栈跟踪表明异常发生在 ASP.NET 管道 (OnEndRequest) 的后期,并且是通过 Autofac 组件发出的。

要捕获此错误,您必须订阅 HttpApplication 的Error事件。请参阅以下有关创建全局错误处理程序的文章:http://msdn.microsoft.com/en-us/library/994a1482.aspx。在这种情况下,您可以处理错误并重定向到自定义错误页面。