2014-07-07 3 views
1

MVC 페이지에 두 개의 게시 매개 변수가있는 일반 양식 게시가 나타납니다.MVC - 출력 캐시 - 게시 매개 변수 - VaryByParam 효과 없음

SupplierId 및 Repayment.

내가 같은 작업에 OutputCache를 사용 형태로 추가하기 전에 : URL이 변경 될 때

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

모든 일했다.

지금 나는 aswell 포스트 매개 변수에 의해 변화 할, 그래서 그것을 변경 :

[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) 
{ 
}