我试图按照此链接中的建议向控制器调用返回错误, 以便客户端可以采取适当的操作.控制器由javascript通过jquery AJAX调用.只有在我没有将状态设置为错误时才会返回Json对象.这是示例代码
if (response.errors.Length > 0)
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(response);
Run Code Online (Sandbox Code Playgroud)
如果我没有设置状态代码,我会得到Json.如果我设置了状态代码,我会返回状态代码但不会返回Json错误对象.
更新 我想将一个Error对象作为JSON发送,以便可以处理ajax的错误回调.
所以我从我的MVC网络应用程序返回详细的400错误响应.设置existingResponse ="PassThrough"有效,但这不是我想要的.我不想公开所有的失败,我只想在我有自定义响应时公开它们.
自动,默认设置,但我故意设置它.但是,文档说必须设置"SetStatus"标志,但我不知道如何做这样的事情.我编写了以下四种控制器方法来测试它,只有BadRequestD工作.其他人设置状态代码和状态就好了,但是正文内容是"错误请求".
public ActionResult BadRequestA()
{
Response.StatusCode = 400;
return Content("weeeeee");
}
public ActionResult BadRequestB()
{
Response.Status = "400 U DUN MESSED UP";
return Content("weeeeee");
}
public ActionResult BadRequestC()
{
Response.Status = "400 U DUN MESSED UP";
Response.StatusCode = 400;
return Content("weeeeee");
}
public ActionResult BadRequestD()
{
Response.StatusCode = 400;
Response.TrySkipIisCustomErrors = true;
return Content("weeeeee");
}
Run Code Online (Sandbox Code Playgroud)