asp.net webapi 2.0处理错误的路由

时间:2016-07-14 14:35:09

标签: c# asp.net asp.net-web-api

我已经为应用程序开发了一个API,并且我已经设置了所有路由,但是当用户请求错误的操作时,服务器默认返回404并且我试图找到某种方式来改变它但我没有找到任何东西。 ..

所以,让我说我有一个api与以下路线:

/api/school/1/classes

如果客户请求

/api/school/1/classez

我想返回响应代码501或405而不是默认的404。 怎么办呢?

1 个答案:

答案 0 :(得分:0)

使用路线属性。

[HttpGet]
[Route("api/{id}/foo")]
public HttpResponseMessage foo(int id)
{
    var response = new ApiResponse();
    response.StatusCode = HttpStatusCode.OK;
    return response;
}

[HttpGet]
[Route("api/{id}/{route}")]
public HttpResponseMessage bar(int id)
{
    var response = new ApiResponse();
    response.StatusCode = HttpStatusCode.BadRequest;
    return response;
}

如果他们输入正确,那么它将进入foo。否则他们会进入酒吧,你可以随心所欲地处理它。