当 MVC 操作 returns 错误状态时如何保持响应主体?
How to keep response body when MVC action returns error status?
我想 return BadRequest
来自我的 MVC 控制器的状态和错误消息:
public class TestController : System.Web.Mvc.Controller
{
public ActionResult Bad()
{
Response.StatusCode = 400;
return new JsonResult()
{
Data = new { Message = "Request is bad!" },
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
}
当我在 IISExpress 中启动应用程序时它起作用,方法 returns 响应正文:
{"Message":"Request is bad!"}
但是当我将同一个站点部署到 IIS(版本 8.5)时,响应正文更改为:
Bad Request
为什么会这样?是否有一些设置允许在状态不是 200 时保留响应正文?
我找到了两个解决方案:
- 将 Response.TrySkipIisCustomErrors 设置为真。
- 在httpErrors
中将existingResponse
设置为PassThrough
我想 return BadRequest
来自我的 MVC 控制器的状态和错误消息:
public class TestController : System.Web.Mvc.Controller
{
public ActionResult Bad()
{
Response.StatusCode = 400;
return new JsonResult()
{
Data = new { Message = "Request is bad!" },
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
}
当我在 IISExpress 中启动应用程序时它起作用,方法 returns 响应正文:
{"Message":"Request is bad!"}
但是当我将同一个站点部署到 IIS(版本 8.5)时,响应正文更改为:
Bad Request
为什么会这样?是否有一些设置允许在状态不是 200 时保留响应正文?
我找到了两个解决方案:
- 将 Response.TrySkipIisCustomErrors 设置为真。
- 在httpErrors 中将
existingResponse
设置为PassThrough