gpt4 book ai didi

asp.net-mvc - 使用 OutputCacheAttribute 时忽略 SetLastModified

转载 作者:行者123 更新时间:2023-12-01 04:13:09 24 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 方法(.NET 4.0 上的 v3.0)设置如下:

[OutputCache(Duration = 31536000, Location = OutputCacheLocation.Any)]
public virtual ActionResult Item()
{
this.Response.Cache.SetLastModified(new DateTime(2011, 01, 01));
return this.Content("hello world", "text/plain");
}

我希望这会与 Last-Modified 一起回来。 header 设置为 Mon, 07 Feb 2011 00:00:00 GMT如指定的那样,但是它实际上是作为输出第一次缓存在输出缓存中的日期返回的(即自 IIS 重置后第一次调用该方法)。

如果我注释掉 [OutputCache]属性,以便不进行输出缓存,然后 Last-Modified header 按预期返回,因此似乎是输出缓存基础架构中的某些东西选择忽略我为此指定的值。

知道为什么它可能会这样做吗?有没有办法让它使用我指定的值作为 Last-Modified日期?

最佳答案

好吧,我从来没有弄清楚发生这种情况的原因,但它看起来像是 ASP.NET 页面缓存基础结构中某处的错误,[OutputCache]属性用途。

我最终写了一个自定义 [HttpCache]具有几乎相同的公共(public)接口(interface)的属性,但它调用了 Response.Cache 上的适当缓存方法直接对象,而不是委托(delegate)给 ASP.NET 页面缓存基础结构。

这很好用。遗憾的是内置属性没有。

关于asp.net-mvc - 使用 OutputCacheAttribute 时忽略 SetLastModified,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4945817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com