부분보기에서 다른 OutputCache 속성을 설정하려고하면 PartialView 캐시가 부모 출력 캐시 기간을 사용하는 것으로 나타납니다. 다음 코드와 나는 RenderPartial이 짧은 OutputCache를 지속 시간을 초래할 것이라는 점을 희망하지만 난 그게 (십초)에 DateTime.Now에서 보여주는 간단한 예제로MVC3 부분보기 부모보기로 OutputCache를 재정 의하여
public class HomeController : Controller
{
[OutputCache(Duration=10, VaryByParam="none")]
public ActionResult Index()
{
ViewBag.Message = "Time now: "+ DateTime.Now.ToString();
return View();
}
[ChildActionOnly]
[OutputCache(Duration=5, VaryByParam="none")]
public PartialViewResult LogonPartial()
{
return PartialView("_LogOnPartial");
}
}
상위 뷰와 동일한 것을 발견 PartialView는 부모보기가 자신을 비울 때까지 PartialView가 캐시를 지우지 않는다는 것을 알았습니다. 부분보기 지우기의 캐시가 매 5 초마다 (부모보기와 같이 매 10 분마다가 아니라) 희망하기를 바랍니다. PartialView에서 OutputCache를 사용하는 예제에서는 캐시가 포함 된 뷰가 아닌 PartialView에서 구현됩니다. MVC3에서 캐싱의 한계가 있거나 동일한 페이지에서 다른 캐싱 메커니즘을 처리 할 수있는 다른 방법이 있다면 누구에게 알 수 있습니까? 미리 감사드립니다!
대린 감사합니다. 나는이 문제를 해결할 수있는 방법이 있기를 희망했지만 그 대답은 많은 의미가 있습니다. 이제 도넛을 원해! – likestoski
출력 캐싱의 경우 '모범 사례'에는 어떤 것이 있습니까? 이 시나리오에서 전체 페이지를 캐싱하면 로그 아웃 링크를 눌렀을 때 _LogOnPartial이 새로 고쳐지지 않게됩니다. – likestoski