0
我不明白爲什麼我的WebApi在我發佈時返回成功(200),但是當我放置時不返回任何內容。都成功更新數據庫。Restful WebApi V2 Put問題
我附上了我的兩種方法的代碼。 感謝 保羅
// PUT: api/items/5
[Route("api/items/{id:int}")]
[ResponseType(typeof(void))]
public async Task<IHttpActionResult> PutItem([FromBody] Item[] item, string updateitems)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
foreach (Item i in item)
{
if (updateitems.IndexOf(i.ItemId.ToString()) > 0)
{
db.Entry(i).State = EntityState.Modified;
}
}
await db.SaveChangesAsync();
var iStatus = StatusCode(HttpStatusCode.OK);
return iStatus;
}
// POST: api/items
[Route("api/items")]
[ResponseType(typeof(Item))]
public async Task<IHttpActionResult> PostItem([FromBody] Item[] item)
{
int itemCount = 0;
string edititems = "";
IHttpActionResult iStatus;
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
foreach (Item i in item)
{
if (!ItemExists(i.SurveyId, i.LineId))
{
db.Items.Add(i);
}
else
{
var id = FindItemId(i.SurveyId, i.LineId);
edititems = edititems + ',' + id.ToString();
i.ItemId = id;
}
itemCount ++;
}
await db.SaveChangesAsync();
if (edititems.Length > 0)
{
IHttpActionResult result = PutItem(item, edititems).Result;
}
iStatus = StatusCode(HttpStatusCode.OK);
return iStatus;
}
謝謝JULITO。我錯過了,真的希望能解決這個問題。不幸的是,我還沒有得到一個狀態,只要代碼命中db.SaveChangesAsync,程序就離開了這個建築。 –
原來是異步部分阻止了響應代碼。 –