MVC3页面未被更新

时间:2011-10-25 16:16:45

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

我遇到了一个我似乎无法解决的问题,甚至可以解决这个问题。在我的视图中,我有以下内容:

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

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

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

1 个答案:

答案 0 :(得分:1)

听起来你正在遇到一个缓存问题,因为页面正在缓存其初始值,尽管值有所变化,但当请求页面时,它只会从缓存中拉出来。

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

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

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