我想让我的控制器在找不到找到的资源时返回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中修复了此问题。