2013-11-04 3 views
2

나는 이것이 간단한 일이 될 것이라고 생각했지만 그것은 내 견과를 몰고있다. 단순히 액션MVC 출력 캐시가 서버에 캐싱하지 않음

public ViewResult Index(string parameter) {...}

하기 전에 다음 ...

[OutputCache(Duration = 300)]

를 추가하지만 그것을 캐싱 아니에요, 나는 액션 내부 디버거에서 중단 점을 넣고 그것을 모든 안타 나는 그 페이지로 간다. Location 매개 변수를 Client으로 설정하면 서버가 작동하기를 원합니다. 작동을 위해 다른 곳에서 캐싱을 활성화해야합니까?

+0

가 중요한 경우'parameter'가 (NULL, "{매개 변수}"새로운 routes.MapRoute'같이 라우터에서 온다 {controller = "mycontroller", action = "index"})' – Rodolfo

답변

7

발견. 기본 컨트롤러는 OnActionExecuting에 쿠키를 설정하고 쿠키를 설정하는 페이지가 출력 캐시에 저장되지 않기 때문에 기본적으로 [OutputCache] 지시어에 관계없이 페이지가 캐싱되지 않는 것으로 나타났습니다.

+0

고마워요! 작업 필터로 인해 동일한 문제가 발생했습니다. –

+1

문제를 해결하기 위해 무엇을 했습니까? 액션 필터를 유지 했습니까? 그렇다면 캐싱을 계속 수행할까요? – cal5barton

0

같은 문제가있어서 VaryByParam에 정확한 매개 변수를 수정하여이 문제를 해결했습니다.

[OutputCache(Duration=120, VaryByParam ="argument1")] 

대신 VaryByParam 특성으로이 작업을 수행 = "*"

관련 문제