当所选资源未找到时,我希望我的控制器返回一个204(无内容)的HttpResponseMessage。
通常我会这样编写代码:
public Contracts.IRoom Get(HttpRequestMessage request, int id)
{
return _RoomRepo.GetAllRooms().Where(r => r.Id == id).FirstOrDefault();
}
但是这样会得到一个响应代码200(已确认)和数据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);
}
有没有更简单的方法实现这个功能呢?看起来asp.net团队可能已经在MVC 6中解决了这个问题,正如在ASP.Net文档中所述。