ASP.NET MVC OutputCache 不适用于根 URI
Posted
技术标签:
【中文标题】ASP.NET MVC OutputCache 不适用于根 URI【英文标题】:ASP.NET MVC OutputCache doesn't work for root URI 【发布时间】:2008-11-27 10:52:20 【问题描述】:我正在学习 ASP.NET MVC,但遇到了一个问题。
在 HomeController 中,Index 动作有 OutputCache 属性,但似乎不起作用。
[HandleError]
public class HomeController : Controller
[OutputCache(Duration=5, VaryByParam="none")]
public ActionResult Index()
ViewData["Title"] = "Home Page" + DateTime.Now;
ViewData["Message"] = "Welcome to ASP.NET MVC! " + DateTime.Now;
return View();
尝试了好几分钟后,我发现这是由于我访问操作的方式所致。如果我通过“http://localhost:3573/”访问它,则输出缓存不起作用。但是,如果我使用“http://localhost:3575/Home/Index”访问它,则输出缓存可以工作。
有人知道使默认控制器动作输出可缓存的任何解决方法吗?
谢谢。
【问题讨论】:
我在这里看到了同样的问题。 你们中有人使用 chrome 吗?我注意到 chrome 缓存有些奇怪 【参考方案1】:我认为这是 ASP.NET MVC 中的一个错误。我们已在我们的数据库中记录了该问题,并将调查此问题的修复方法。
谢谢, 艾隆
【讨论】:
您是否还会修复将 VaryByParam 设置为“无”会发出 HTTP 响应标头“Vary: *”的错误,这与应该发生的情况相反? @Eilon 我仍然认为这仍然是一个问题,您对缓存根 uri 有什么建议吗?除了重定向到 /home ;)【参考方案2】:使用 VarByParam="" 似乎可以让它工作
【讨论】:
【参考方案3】:根据我在 Microsoft 的联系人,如果您从站点的根目录中删除 Default.aspx 文件,问题就会完全消失,或者,如果您绝对需要它,请确保使用最新版本提供的文件ASP.NET MVC 版本。
【讨论】:
以上是关于ASP.NET MVC OutputCache 不适用于根 URI的主要内容,如果未能解决你的问题,请参考以下文章
我的 asp.net mvc Web 应用程序中的 OutputCache 设置。防止缓存的多种语法
详解Asp.Net Core 2.1+的视图缓存(响应缓存)