如何更改ASP.NET Web API永远不会返回text / html 404响应?我宁愿它用ExceptionMessage或Message发回
XML /
JSON.从IMO返回HTML是没有意义的.
只是为了澄清,这适用于URL真正无效的情况.
另一个问题是我在同一个项目中托管MVC和Web API,所以我需要做出不同的回应.我猜这将取决于URL是否以“api”开头.
解决方法
如果您只是致电,则不会获得这些HTML数据
抛出新的HttpResponseException(HttpStatusCode.NotFound);
在你的ApiController方法的某个地方.
抛出新的HttpResponseException(HttpStatusCode.NotFound);
在你的ApiController方法的某个地方.
只有当路由机制无法满足您对任何ApiController方法的请求时,才能获得此页面.因此,HTML消息附加在应用程序级别而不是ApiControllers中.以下是如何处理ASP.NET应用程序Custom error pages on ASP>NET MVC3中的错误的非常好的示例.
我甚至会更进一步检查请求是否来自WebAPI(而不是MVC),如果是,则重定向到ErrorsContoller中的IHttpActionResult.
如何准备IHttpActionResult以获得响应,你可以在这里阅读Action Results in Web API 2