小编Nil*_*ils的帖子

ASP.Net WebApi控制器应返回204而不是null [HttpResponseMessage]

我想让我的控制器在找不到找到的资源时返回204(NoContent)的HttpResponseMessage。

通常我会这样编码:

public Contracts.IRoom Get(HttpRequestMessage request, int id)
        {
            return _RoomRepo.GetAllRooms().Where(r => r.Id == id).FirstOrDefault();            
        }
Run Code Online (Sandbox Code Playgroud)

但这给了我200(Ok)的ResponseCode和 null

因此,要实现我正在寻找的东西,我必须编写代码:

public HttpResponseMessage Get(HttpRequestMessage request, int id)
{
    var room = _RoomRepo.GetAllRooms().Where(r => r.Id == id).FirstOrDefault();
    if (room != null)
        return request.CreateResponse(System.Net.HttpStatusCode.OK, room);
    else
        return request.CreateResponse(System.Net.HttpStatusCode.NoContent, room);
}
Run Code Online (Sandbox Code Playgroud)

有更简单的方法吗?正如ASP.Net Docs中所述,似乎asp.net家伙可能已经在MVC 6中修复了此问题。

c# asp.net asp.net-mvc asp.net-web-api

5
推荐指数
1
解决办法
4927
查看次数

标签 统计

asp.net ×1

asp.net-mvc ×1

asp.net-web-api ×1

c# ×1