C# 如果使用OutputCache(Location=OutputCacheLocation.down),如何获取新副本

C# 如果使用OutputCache(Location=OutputCacheLocation.down),如何获取新副本,c#,asp.net-mvc,mono,browser-cache,outputcache,C#,Asp.net Mvc,Mono,Browser Cache,Outputcache,Mono MVC2应用程序使用下面的控制器在浏览器中缓存订单页 若在浏览器中按F5,则旧页仍会返回到浏览器。 如果按F5,如何返回新页面? 看起来页面缓存在服务器中,但OutputCacheLocation。下游必须仅在borwser中缓存页面。这是错误吗 [Authorize] public class DetailController : ControllerBase { [OutputCache(Location = OutputCacheLocat

Mono MVC2应用程序使用下面的控制器在浏览器中缓存订单页

若在浏览器中按F5,则旧页仍会返回到浏览器。 如果按F5,如何返回新页面? 看起来页面缓存在服务器中,但OutputCacheLocation。下游必须仅在borwser中缓存页面。这是错误吗

    [Authorize]
    public class DetailController : ControllerBase
    {
        [OutputCache(Location = OutputCacheLocation.Downstream, Duration = 20 * 60,VaryByParam = "_entity")]
        public ActionResult Index(string _entity, int? orderId)
        {
...

我认为您可能忽略了缓存的全部要点。按
F5
将继续返回缓存的页面,直到页面过期为止(您的情况是20分钟)。如果您想强制服务器再次发送页面,您需要执行一个操作,例如
Ctrl
+
F5

OutputCacheLocation。下游
表示服务器不应缓存页面。20分钟只是浏览器缓存时间。按F5必须从服务器返回没有任何缓存的新页面。我在IE9中也尝试了Ctrl+F5,但在pro中没有尝试问题仍然存在。@安德鲁斯,确切地说,服务器没有缓存浏览器所在的页面。按F5键只能将页面从浏览器缓存中拉出来,直到过期。唯一的解决方法是清除缓存或进行硬刷新。按F5键后,Chrome developer tools Network显示页面是从服务器检索的。它不是从浏览器读取。但是返回了页面的旧版本。如何强制服务器返回新的页面版本?@Andrus您希望更改的页面上到底有什么内容?如果Chrome告诉您页面来自服务器,则页面上很可能有其他内容已被缓存,例如,您是否依赖JS执行等等mething?orderId参数不同。它应该返回orderId参数对应的其他订单。当前它总是返回应用程序运行后第一次打开的订单。Javascript不用于呈现订单头,它是包含输入元素的简单表单