我不應該在部分視圖被緩存時出現問題。這部分視圖用於顯示頁面上的登錄/註銷。它採用簡單的代碼下面找出哪些鏈接以顯示在MVC中的局部視圖上禁用緩存3
@if(Request.IsAuthenticated) {
<a href="@Url.Action("LogOff", "Account", new { area = "" })">Log Off</a>
}
else {
<a href="@Url.Action("LogOn", "Account", new { area = "" })">Log On</a>
}
這部分觀點是從我MVC3應用程序的所有頁面調用,使用
@Html.Partial("_HeaderView")
在大多數我的控制器,我有定義輸出緩存,所以我可以利用緩存我的內容。
[OutputCache(Duration = 86400, VaryByParam = "*")]
現在我的問題是,當我不希望部分視圖是整個頁面被緩存。這導致錯誤的行爲,即使用戶沒有登錄,它有時也會顯示LogOff等。有沒有一種方法可以緩存除有問題的局部視圖以外的所有內容?
尼克,對不起,必須在這裏添加評論。無論如何,它在我移除Nostore並將持續時間更改爲1時起作用。現在唯一的問題是當用戶登錄時,它們被帶到主頁,但我必須明確地刷新它以使更改生效(顯示註銷而不是登錄)。 – SimpleUser 2012-01-09 11:26:54