在最新的ASP.NET MVC4测试版中,您将如何通过ETag支持有条件的GET支持? ActionFilter需要能够完成为返回的资源生成ETag的请求,以便与请求中的If-None-Match头进行比较。然后,不管If-None-Match头中的传入ETag是否与生成的ETag相同,将生成的ETag添加到ETag响应头。但是使用ASP.NET MVC4,我不知道从哪里开始。有什么建议么?
解决方法
就个人而言,我不是“框架魔法”的粉丝,而是喜欢在网络方法中使用普通旧的代码,否则我们最终会得到类似于WCF,yuk的东西。
因此,在您的Get Web方法中,手动创建响应:
var response = this.Request.CreateResponse(HttpStatusCode.OK,obj); string hash = obj.ModifiedDate.GetHashCode().ToString(); response.Headers.ETag = new EntityTagHeaderValue(String.Concat("\"",hash,"\""),true); return response;