ASP.NET MVC:如何返回304"未修改"状态?

THX*_*138 18 http-status-code-304 asp.net-mvc-3

ASP.NET MVC 3.0,IIS 7,.NET 4

我有一个动作,返回很少变化的数据(几乎是静态的).

有一个简单的方法:

  1. 从行动中返回304"未修改";
  2. 在响应中包含"Last-Modified"时间戳.

return Content('my data');用于行动结果.

基本上我想要一个简单的方法来完成本文中所讨论的内容:http://weblogs.asp.net/jeff/archive/2009/07/01/304-your-images-from-a-database.aspx

小智 15

(非常!)迟到的答案,但这个问题在搜索引擎结果中突然出现,所以它可能对未来登陆这里的人有用.

第1部分的替代方案:

return new HttpStatusCodeResult(304, "Not Modified");
Run Code Online (Sandbox Code Playgroud)


CD.*_*D.. 10

对于304来说这有什么不对吗?

        Response.StatusCode = 304;
        Response.StatusDescription = "Not Modified";
        return Content(String.Empty);
Run Code Online (Sandbox Code Playgroud)

这个用于LastModified:

        Response.Cache.SetLastModified(DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

或者只是创建一个"未修改"的过滤器.

  • 更重要的是,我仍然需要在请求中检查并解析"If-Modified-Since",这对我来说太复杂了. (3认同)