首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.Net Web 2中的If-Modified-Since

Asp.Net Web 2中的If-Modified-Since
EN

Stack Overflow用户
提问于 2014-11-03 14:46:38
回答 1查看 1.8K关注 0票数 2

在我目前的项目中,我正在使用Angularjs和Asp.net WebApi2,并尝试使用一些头文件来确定工作流程。

在一种情况下,我希望仅当设置了“if -Modified- set”-header并且值与存储的实体相同时才更新实体。

我的angular代码如下所示:

代码语言:javascript
复制
$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代码如下所示:

代码语言:javascript
复制
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属性吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-24 00:00:24

检查要作为标头值发送的日期格式。日期格式必须符合RFC 1123标准。如果

代码语言:javascript
复制
Request.Headers.GetValue("If-Modified-Since")

不是这种格式,这就解释了为什么

代码语言:javascript
复制
Request.Headers.IfModifiedSince

为空。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26709131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档