2011-02-26 13 views
5

Próbuję skorzystać z funkcji buforowania pączek w .NET MVC 3. Na mojej stronie internetowej, w moim kontrolera do domu, mam:Jak usunąć OutputCache na ChildAction?

public ActionResult Index() 
{ 
    return View(); 
} 

[ChildActionOnly] 
[OutputCache(Duration=3600)] 
public ActionResult IndexMain() 
{ 
    return PartialView(ViewModelRepository.GetIndexViewModel()); 
} 

I moim zdaniem, mam:

<% Html.RenderAction("IndexMain");%> 

To wszystko działa dobrze. Jednak, gdy zmiany danych, biegnę:

var urlToRemove = Url.Action("IndexMain", "Home"); 
Response.RemoveOutputCacheItem(urlToRemove); 

RemoveOutputCacheItem wykonuje bez błędu, ale cache ChildAction nie podważa. Czy istnieje sposób programowego usunięcia elementu pamięci podręcznej z ChildAction?

+0

jeszcze kilka linków: http://stackoverflow.com/a/7530265/63733, http://thenullreference.com/blog/fixing-the-asp -net-mvc-3-outputcacheattribute-for-partial-views-to-honor-some-web-config-settings /, http://stackoverflow.com/a/7117242/63733 – marapet

Odpowiedz

5

Czy próbowali za pomocą właściwości VaryBy takich jak VaryByParam or VaryByCustom

+1

Wygląda na to, że jest to jedyny sposób na idźcie bez korzystania z pełnowymiarowej reimplementacji. – marapet

+0

Bounty przyznane za tę odpowiedź - nie marnujmy punktu reputacji ... – marapet

Powiązane problemy