2011-06-27 10 views
6

Chcę łatwy sposób wyczyścić buforowane strony na mojej stronie asp.net-mvc.Czy można wymusić usunięcie (OutputCache (strona i partialView) w asp.net-mvc

Mam drogie operacje bazy danych, więc często korzystam z funkcji wyciągania, aby strona działała szybciej. Mam kodu, który wygląda tak:

[OutputCache(Duration = 30000)] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [OutputCache(Duration = 30000, VaryByParam = "*")] 
    public ActionResult GetData(MyParams myParams) 
    { 
     return PartialView("MyView", GetVM(myParams)); 
    } 

Istnieją pewne razy (gdy coś pójdzie nie tak), gdy chcę explicitally jasne tę pamięć podręczną (niezależnie od istniejącego trwania Cache)

czy jest tak na pełny i częściowa strona Outputcaching, aby usunąć stronę z pamięci podręcznej i uruchomić pełny kod?

UWAGA: widzę, że to pytanie jest zadawane już w ogóle wokół asp.net jak here ale nie widzę rozwiązania konkretnego asp.net-mvc

próbowałem tego, ale nie wydaje się do pracy:

public ActionResult ClearCache() 
{ 
     this.HttpContext.Response.RemoveOutputCacheItem("/MyController/Index.aspx"); 
     this.HttpContext.Response.RemoveOutputCacheItem("/MyController/MyView.ascx"); 
} 

Odpowiedz

1

myślę znajdziesz swoją odpowiedź tutaj: Clearing Page Cache in ASP.NET

+0

Odpowiedź ta nie koncentruje się na rozwiązaniu opartym na MVC. Myślę, że jest lepszy sposób niż określenie rozszerzeń ".aspx", aby wyczyścić pamięć podręczną. . – leora

+0

Jeśli przyjrzeć się dalszej odpowiedzi, w drugiej i trzeciej odpowiedzi znajdziesz linki i pomysły dotyczące MVC. –

+0

To nie działa dla działań MVC, o ile mogę powiedzieć –

0

dla MVC rozwiązania opartego można zrobić coś takiego

this.HttpContext.Response.RemoveOutputCacheItem(Url.Action("MyAction","MyController",new{ id = 1234})); 
Powiązane problemy