我有这个API方法:
[HttpGet]
public MyTable GetMyTable(byte id, string langid)
{
MyTable mytable = db.MyTables.Find(id, langid);
if (mytable == null)
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
return mytable;
}
目前它会抛出NotFound异常,但我不希望它抛出异常,而是我希望得到JSON格式的消息,说明找不到所需的条目。
我可以使用HttpResponseException添加try / catch块,但是此方法返回模型的实例,而不是HttpResponseMessage。
注意:我使用的是MVC 4,Visual Studio 2010,EntityFramework 4.3
上述方法应该改变什么?
P.S。如果我只返回用
创建的空实例,那会更好吗?myTable = db.MyTableDbSet.Create();
答案 0 :(得分:4)
我觉得自己很容易接受这种方法:
FirebasePerformance.getInstance().setPerformanceCollectionEnabled(false);
答案 1 :(得分:0)
我使用的是.NET 4.0,并且在.NET 4.5中添加了Task.FromResult(),所以我认为我不能使用IHttpActionResult接口。
这是我做的:
public HttpResponseMessage GetMyTable(string id, string langid)
{
MyTable myTable = db.MyTableDbSet.Find(id, langid);
if (myTable == null)
{
return Request.CreateResponse(HttpStatusCode.NotFound);
}
else
{
return Request.CreateResponse(HttpStatusCode.OK, myTable);
}
}