的WebAPI HTTP错误404未找到
问题描述:
我遇到的WebAPI 5.2.3一个问题,即如果我有像这样的控制器:的WebAPI HTTP错误404未找到
[RoutePrefix("api/values")]
public class ValuesController : ApiController
{
[Route]
public IHttpActionResult Get()
{
return Ok("data");
}
}
目前,如果我提出一个要求,以API /值我找回我的响应“数据”就好了。我想处理找不到的路由,例如“api/values/foo”。目前,使api/values/foo请求返回典型的IIS Http Error 404.0 Not Found页面。我希望能够处理这个问题并根据协商的内容类型返回一个json或xml响应。有没有人遇到过这个问题,你是如何解决它的?
在此先感谢。
另外要注意的是,我创建了一个DelegatingHandler并确认我的请求没有进入WebApi堆栈。有任何想法吗?
答
您可能需要创建自定义控制器/动作选择器(IHttpControllerSelector/IHttpActionSelector),看看这篇文章,它创建一个自定义控制器来处理404错误。
http://weblogs.asp.net/imranbaloch/handling-http-404-error-in-asp-net-web-api
希望这会有所帮助。