ASP.NET Web API中的Request.CreateResponse(HttpStatusCode.OK)
和 Request.CreateResponse(HttpStatusCode.OK, object)
有什麼區別?爲什麼在提供響應模型時必須指定HTTP狀態碼?
如果與對象對應的模型沒有狀態,是不是會將HttpStatusCode設置爲true或false?
我來這個問題,因爲以下情形的
public HttpResponseMessage Put(int id, ModelObject object)
{
if (ModelState.IsValid && id == object.objectID)
{
db.Entry(object).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
return Request.CreateResponse(HttpStatusCode.NotFound);
}
return Request.CreateResponse(HttpStatusCode.OK);
}
else
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
**,如果我檢查httpresponsemessage.statuscode它顯示httpresponsemessage是即使行執行
任務響應調用的方法無效= httpClient.PutAsJsonAsync(uri,modelObject);
return JsonConvert.DeserializeObjectAsync<HttpResponseMessage>(response.Result.Content.ReadAsStringAsync().Result).Result;
是,這是正確的
也許你需要趕上(DbUpdateConcurrencyException ex) 返回Request.CreateResponse(HttpStatusCode.NotFound,ex.Message); } –
我已經用PUT方法的invoke部分提出了我的問題。你能看看嗎?我可能會在返回類型和序列化在那裏做錯了 – jubi