0
我在工作的WebAPI。我實施了所有的CRUD方法。
場景:
在PUT方法,我不包括像 'CreatedDate' 一些屬性被更新。我的代碼如下所示;
[Route("")]
public async Task<IHttpActionResult> Put(MyModel myModel)
{
//Parsing to Business Entity
var item = TheFactory.Parse(myModel);
bool result = await _myBL.UpdateLab(item);
if (!result)
{
return BadRequest("Error in Save");
}
//Converting to view model and return
return Ok(TheFactory.Create(item));
}
問題:
我在這裏不是從用戶獲得CreatedDate。所以它總是最短的日期。在DAL中,我將此字段指定爲未修改,因此它始終具有已創建的數據值。作爲回報,我將從給出的模型用戶轉換爲viewmodel。所以CreatedDate是最短日期不是原創的。
MySolution:
因此再次避免獲取更新從數據庫對象,並返回給用戶。我已經有方法通過傳遞id來返回對象。所以我只是改變了我的PUT方法,如下所示;
[Route("")]
public async Task<IHttpActionResult> Put(MyModel myModel)
{
//Parsing to Business Entity
var item = TheFactory.Parse(myModel);
bool result = await _myBL.UpdateLab(item);
if (!result)
{
return BadRequest("Error in Save");
}
//Redirect to getbyid method
return RedirectToRoute("GetById", new { id = item.Id });
}
問題:
在這裏,我想我可以重用的方法獲取方法,因此也返回OK(對象)。但改成這個後,我得到了以下例外;
請求的資源不支持http方法'PUT'。
響應狀態是405,請幫我找到routecause