如何解决如何使用MVC控制器发送自定义HTTP 400错误消息?
很奇怪,不确定为什么。 我有一个旧的mvc网站,并且想要添加一些自定义错误消息。例如,当http状态代码为400时,我要输出
{
"error": {
"code": "","message": "xxx is wrong with ..."
}
}
return new HttpStatusCodeResult(HttpStatusCode.BadRequest,@"{
""error"": {
""code"": "",""message"": ""xxx is wrong with ...""
}
}");
但是有两个问题:
我尝试了许多其他方式(例如,发送HttpResponseMessage
),但没有一种有效。使用HttpResponseMessage,
return new HttpResponseMessage(HttpStatusCode.BadRequest)
{
ReasonPhrase = HttpStatusCode.BadRequest.ToString(),Content = new StringContent("hello")
};
我实际上是 status 200
,正文是:
StatusCode: 400,ReasonPhrase: 'BadRequest',Version: 1.1,Content: System.Net.Http.StringContent,Headers:
{
Content-Type: text/plain; charset=utf-8
}
所以我想输出带有某些Json正文的BadRequest状态消息,该怎么办?
解决方法
两天后,我终于解决了。
上一个stackoverflow问题的解决方案实际上可以在我的本地计算机上使用,但是当我部署到服务器时不会输出任何信息。
在我的本地计算机上,VS将在IIS Express中运行代码,而在服务器上是IIS。因此,在web.config中,我实际上需要这些行:
<system.webserver>
<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough"></httpErrors>
</system.webserver>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。