Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在ASP.NET中以json格式发回我自己的404错误消息?_Asp.net Mvc_Json_Exception Handling_Http Status Code 404_Http Response Codes - Fatal编程技术网

Asp.net mvc 如何在ASP.NET中以json格式发回我自己的404错误消息?

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做的事情。他们展示/解释

我试图以Json的形式返回一条简单的错误消息,HTTP代码为404

因此,我开始编写自己的IEExceptionFilter来检查异常。为了简单起见,如果异常抛出的类型是ResourceNotFoundException,那么我将代码设置为404。否则,所有其他的,如果500

现在,问题是。。返回默认IIS7 404错误消息:调用我的代码。。但它似乎在以后的管道中绕过了它

我需要做些什么吗

我需要打开web配置中的自定义错误处理还是其他什么

编辑: 我试着做twitter做的事情。他们展示/解释了他们如何处理404等的一些示例。。我想在我的MVC应用程序中实现这一点

编辑2:
下面列出了我完成的代码,供任何人参考:

当您处理异常时,是否将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的真正逻辑。脸红