【问题标题】:MVC3 Pages Not Being UpdatedMVC3 页面未更新
【发布时间】:2011-10-25 16:16:44
【问题描述】:

我遇到了一个我似乎无法解决甚至无法解决的问题。在我看来,我有以下几点:

@Html.Hidden("IsLocked", (Session["IsLocked"]) ? "true" : "")

Session["IsLocked"] 变量在我的 BaseController 中设置,所有其他控制器都继承自该变量。但是我发现,如果我访问一个页面,并且它当前没有被锁定,并且执行锁定操作并重新访问它,它不会改变“IsLocked”的值。

我似乎无法弄清楚为什么它没有改变,即使 Session 值已经改变?

【问题讨论】:

    标签: c# asp.net .net asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    听起来您遇到了缓存问题,因为页面正在使用它们的初始值进行缓存,尽管值发生了变化,但当页面被请求时,它只会从缓存中提取。

    您可以使用OutputCache 属性来帮助禁用缓存以实现这些目的。以下将确保您的操作/页面不会被缓存并且数据始终是“新鲜的”:

    [OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")]
    public abstract class BaseController : Controller
    

    以上内容可以放在任何控制器或操作上,以禁用对该特定事件的缓存。 (在上面的上下文中,如果放置在 BaseController 上,它将有效地禁用从 BaseController 派生的每个控制器的缓存)

    【讨论】:

      猜你喜欢
      • 2013-12-23
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      相关资源
      最近更新 更多