0
我設計了一個普通模式對話框,模態對話框包含:MVC3 Ajax.ActionLink緩存
- 查找鏈接
-Partial查看(對返回的結果)。
爲了說明我的問題,你會在RouteValues中找到我發佈當前時間的秒數。每次點擊,我都會得到相同的結果。
@Ajax.ActionLink("Find", "PopulateResults", "Contract", new { kind = DateTime.Now.Second },
new AjaxOptions
{
UpdateTargetId = "results",
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
LoadingElementId = "progress"
}, new
{
@class = "button",
id = "FindButton"
}
)
控制器得到那種值,並將其傳遞給局部視圖
[HttpPost]
[OutputCache(NoStore = true, VaryByParam = "", Duration = 0)]
public ActionResult PopulateResults(int kind)
{
return PartialView("PopulateResults", kind);
}
正如我所說的,值始終緩存,它不更新。
更新:本來,我並不是真的想發佈當前時間並在部分視圖中顯示它。 在我的模式對話框中,我有一個用於過濾返回結果的文本框。實際上,發生的情況是,文本框的值總是被緩存。
我試圖發佈一個字符串到控制器,但它沒有工作 – Anwar 2012-01-17 19:56:10
@Anwar,你在說什麼字符串?其實我不認爲你有緩存問題。您已在控制器操作中使用OutputCache屬性禁用緩存,並且您正在使用通常不被瀏覽器緩存的POST請求。所以你的問題在別的地方。如果你說你一直在控制器動作中使用相同的'kind'參數,這並不意味着這個動作被緩存了。如果這是它甚至不會被調用。這是因爲每次你通過相同的價值。 – 2012-01-17 19:56:28
你是對的,我犯了兩個錯誤 首先,當我發佈當前時間在幾秒鐘內 – Anwar 2012-01-17 20:17:35