Asp.net mvc 如何在ASP.NET MVC中消除HTML错误报告?

Asp.net mvc 如何在ASP.NET MVC中消除HTML错误报告?,asp.net-mvc,error-handling,Asp.net Mvc,Error Handling,我所需要的只是纯文本的错误消息。但是ASP.NET正在从每个错误中输出一些HTML报告 我有一个jquery ajax调用,当抛出错误时,我会将所有这些垃圾都转移到客户端 我创建了一个过滤器属性,但没有帮助 public class ClientErrorHandler : FilterAttribute, IExceptionFilter { public void OnException(ExceptionContext filterContext) { va

我所需要的只是纯文本的错误消息。但是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;
    }
}
编辑

我看到了


我想看看这里是什么
filterContext.Exception.Message

您需要返回一个ContentResult

ContentResult result = new ContentResult();
result.Content = filterContext.Exception.Message;
result.ContentType = MediaTypeNames.Text.Plain; 
filterContext.Result = result;
filterContext.ExceptionHandled = true; 

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

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


要捕获此错误,您必须订阅HttpApplication的事件。请参阅以下有关创建全局错误处理程序的文章:。在这种情况下,您可以处理错误并重定向到自定义错误页面。

因为您正在使用JQuery和WCF(根据错误的详细信息),您可能想看看这篇关于如何优雅地处理服务故障的文章——如果您能够做到这一点,您可能必须重新设计您的服务。

请包括您在客户端看到的内容以及您希望看到的内容。您的web.config中是否有CustomErrors=“Off”?尝试在web.config中打开CustomErrors=“On”或CustomErrors=“RemoteOnly”以抑制.NET死亡黄屏(这是您看到的HTML代码)。我将CustomErrors值设置为On,而不设置任何内容。仍然是死亡的黄屏。是的,我跨过了它。。属性在方法上,而不是在类上。也许您应该尝试单步遍历mvc源代码,看看它为什么不适合您。