2014-07-07 69 views
1

我有一個MVC頁面正在由一個正常的形式職位打2個職位參數。MVC - Outputcache - 後params - VaryByParam沒有影響

SupplierId和還款。

加入我用的輸出緩存像操作的形式之前:

[OutputCache(Duration = 86400, VaryByCustom = "pageurl")] 
public override ActionResult Load(int ControlId) 
{ 

一切工作當URL改變。

現在我想它由後參數藏漢各不相同,所以我把它改爲:

[OutputCache(Duration = 86400, VaryByCustom = "pageurl", VaryByParam = "SupplierId;Repayment")] 
public override ActionResult Load(int ControlId) 
{ 

這是行不通的。它不會爲不同的後參數緩存分離結果。如果我用不同的後參數請求相同的URL,我會繼續獲得初始緩存結果。 Visual Studio中的中斷點也未被擊中。

有人能告訴我我可能會做錯什麼嗎?

回答

1

VaryByParam涉及傳遞給此方法的參數。唯一的參數是int ControlId

VaryByParam = "SupplierId;Repayment"你需要:

[OutputCache(Duration = 86400, VaryByCustom = "pageurl", VaryByParam = "SupplierId;Repayment")] 
public override ActionResult Load(int SupplierId, int Repayment) 
{ 
}