如何更改ASP.NET Web API永不返回text/html
404响应?我更愿意使用ExceptionMessage
或Message
发回XML / JSON。从IMO返回HTML是没有意义的。
只是为了澄清,这适用于URL确实无效的情况。
另一个问题是我在同一个项目中托管MVC和Web API,所以我需要做出不同的回应。我猜这将取决于URL是否以" api"。
开头答案 0 :(得分:2)
如果您只是致电,则不会获得这些HTML数据
throw new HttpResponseException(HttpStatusCode.NotFound);
在你的ApiController的方法中的某个地方。
只有当路由机制无法满足您对任何ApiController方法的请求时,才能获得此页面。因此HTML消息附加在应用程序级别而不是ApiControllers中。以下是如何处理ASP.NET应用程序Custom error pages on ASP>NET MVC3中的错误的非常好的示例。
我甚至会更进一步检查请求是否来自WebAPI(而不是MVC),如果是,则重定向到IHttpActionResult
中的ErrorsContoller
。
如何准备IHttpActionResult
以获取您可以在此处阅读的回复Action Results in Web API 2
答案 1 :(得分:0)
您是否尝试使用Exception Filter?这可能允许您捕获异常,然后设置响应类型" applications / json",message等。