Asp.net mvc 如何在ASP.NET中以json格式发回我自己的404错误消息?
我试图以Json的形式返回一条简单的错误消息,HTTP代码为404 因此,我开始编写自己的IEExceptionFilter来检查异常。为了简单起见,如果异常抛出的类型是ResourceNotFoundException,那么我将代码设置为404。否则,所有其他的,如果500 现在,问题是。。返回默认IIS7 404错误消息:调用我的代码。。但它似乎在以后的管道中绕过了它 我需要做些什么吗 我需要打开web配置中的自定义错误处理还是其他什么 编辑: 我试着做twitter做的事情。他们展示/解释了他们如何处理404等的一些示例。。我想在我的MVC应用程序中实现这一点 编辑2:Asp.net mvc 如何在ASP.NET中以json格式发回我自己的404错误消息?,asp.net-mvc,json,exception-handling,http-status-code-404,http-response-codes,Asp.net Mvc,Json,Exception Handling,Http Status Code 404,Http Response Codes,我试图以Json的形式返回一条简单的错误消息,HTTP代码为404 因此,我开始编写自己的IEExceptionFilter来检查异常。为了简单起见,如果异常抛出的类型是ResourceNotFoundException,那么我将代码设置为404。否则,所有其他的,如果500 现在,问题是。。返回默认IIS7 404错误消息:调用我的代码。。但它似乎在以后的管道中绕过了它 我需要做些什么吗 我需要打开web配置中的自定义错误处理还是其他什么 编辑: 我试着做twitter做的事情。他们展示/解释
下面列出了我完成的代码,供任何人参考:当您处理异常时,是否将ExceptionHandle设置为true 这里有一个简单的例子
HandleException(ActionExecutedContext filterContext)
{
Exception exception = filterContext.Exception;
//Check if our exception has been handled.
if (filterContext.ExceptionHandled == false)
{
//Do your exception stuff
filterContext.Result = YourExceptionMessageAsAnActionResult();
//Set it as null.
filterContext.ExceptionHandled = true;
filterContext.HttpContext.Response.Clear();
}
}
发出JSON真的是你想要做的吗?接收器读取404状态,然后进行处理,这不是比内部处理更好吗?我的意思是,我很难看到什么有意义的数据会进入404的JSON数据包,而客户机还不知道。JSON或Xml。不管怎样,我需要发回404,消费者需要处理它。例如,twitter就是这样做的。是的,我相信是这样。我还添加了一个链接到我完成的代码。你能查一下吗?我也回复了那条消息。看起来你的代码中有一个小的输入错误,但我确信这只是问题代码中的一个输入错误,而不是你班上的内容。是的,这只是一个问题输入错误,因为我简化了berevity的真正逻辑。脸红