Get to poprzez Nuget: http://mvcdonutcaching.codeplex.com/
Dodaj skargę o LogOnPArtial, więc można go zmienić z Html.Partial do Html.Action w _Layout.cshtml
@Html.Action("_LogOnPartial","Account",true)
true
jest wykluczyć parametr, który mówi, wykluczyć to z pamięci podręcznej. Akcja zostanie wywołana, nawet jeśli strona, na której się znajduje, jest zapisana w pamięci podręcznej. To jest "dziura" w pączku, który nie jest buforowany.
Na Twojej stronie, takiej jak About.cshtml, która ma być buforowana, zastosuj atrybut DonutOutputCache. Dzięki temu nowa struktura może przeglądać stronę podczas jej buforowania i dodawać flagi, w których wykluczono działania.
Dobrą rzeczą jest _LogOnPartial nie jest buforowany i odświeży się dla różnych użytkowników, podczas gdy reszta strony zostanie zapisana w pamięci podręcznej, a akcja About() nie zostanie uruchomiona. Można nawet skonfigurować buforowanie w akcji _LogOnPartial utworzonej za pomocą atrybutu DonutOutputCache, ale częściej lub rzadziej, lub w inny sposób. Umożliwia to komponowanie stron częściowych, a logika odświeżania pamięci podręcznej jest niezależnie konfigurowana dla każdego elementu częściowego.
IMO to narzędzie jest dokładnie tym, jak sobie wyobrażałem, że buforowanie w MVC powinno zostać zaimplementowane.
To jest czasami nazywane "buforowaniem pączków" i nie jest obsługiwane w asp.net mvc 2 http://stackoverflow.com/questions/2806663/donut-caching-asp-net-mvc2 –
Dlaczego? o_O Czy nie istnieją inne możliwe rozwiązania? –
Nie widziałem implementacji buforowania pączków. Zawsze można buforować dane w kontrolerze, zamiast buforować dane wyjściowe html. –