1
在我當前的項目中,我將Angularjs與Asp.net Web Api 2結合使用,並嘗試使用一些標頭來確定工作流。Asp.Net Web Api中的If-Modified-Since 2
在一種情況下,我想只在「If-Modified-Since」-header被設置且值與存儲的實體相同時更新實體。
我的角度代碼看起來像以下:
$http.patch(selfLink, {message: item.message},
{
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
"If-Modified-Since": item.LastModified
}
}
)
.success(function(data, status, headers, config) {
if (successCallback) {
successCallback();
}
})
.error(function(data, status, headers, config) {
if (errorCallback) {
errorCallback(data, status);
}
});
在Web API代碼看起來像以下:
public async Task<IHttpActionResult> Patch(int id, JObject updateEntity)
{
using(var session = this.store.OpenAsyncSession())
{
var entity = await session.LoadAsync<TEntity>(id);
if(entity == null)
{
return NotFound();
}
if(Request.Headers.IfModifiedSince.HasValue == false)
{
return BadRequest("Missing If-Modified-Since header");
}
// More code
}
}
每個請求我做我會得到Request.Headers.IfModifiedSince.HasValue == false
,但後來我想Request.Headers.GetValue("If-Modified-Since")
我將獲得我要求的價值。
有誰知道爲什麼Request.Headers.IfModifiedSince
屬性沒有設置?