2010-11-01 15 views
5

Załaduję listę danych przy użyciu ajax i częściowego widoku (ascx) Ale mam problem: moja odpowiedź jest buforowana. Staram się pisać Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) w pliku ascx ale nie pomogłoasp.net mvc disable ajax cache

w ASP.NET WebForms Mam rozwiązać ten pisząc Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) w codebehind. Więc chciałbym wiedzieć, gdzie mogę napisać Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)), aby wyłączyć pamięć podręczną.

+0

nie powinny być buforowane, chyba że wyraźnie powiedzieć to tak dalej dyrektywą działania kontrolera. może to przeglądarka? słyszałem o, np. caching ajax dostaje (ale nie posty). – RPM1984

+0

Tak strona jest buforowana przez przeglądarkę. Ale łatwo jest rozwiązać za pomocą SetExpires. Jak ustawić SetExpires z MVC? – takayoshi

Odpowiedz

12

Użyj jQuery?

$.ajax({ 
cache:false, 
... 
}); 

lub zestaw Controller/Action OutputCacheAttribute.

OutputCacheAttribute Class (System.Web.Mvc)

+0

Jak dokładnie OutputCacheAttribute pomoże wyłączyć pamięć podręczną ?? –

+0

Ten atrybut sterujący nagłówkiem odpowiedzi HTTP (kontrola pamięci podręcznej, wygasa itp.). – takepara

+1

Miałem na myśli to, aby dać przykład kodu, jak używać OutputCacheAttribute do tego: [OutputCache (NoStore = true, Duration = 0, VaryByParam = "*")] –

0

Powinieneś używać ajax POST do metody kontrolera, która zwraca JsonResult, jeśli chcesz ładować dane z serwera asynchronicznie.

+1

Jeśli otrzymujesz * dane *, nie powinieneś * nie * używać POST. Sprawdź metody HTTP jako CRUD: Post = Utwórz, Get = Odczyt, Wstaw = Aktualizuj, Usuń = Usuń –

+0

Komentarz Arve nie jest poprawny. ASP.Net MVC nie obsługuje operacji REST i całkiem możliwe jest użycie metody POST do pobierania danych na podstawie parametru. – dhochee

Powiązane problemy