2013-02-21 29 views

Odpowiedz

14

Domyślnie TempData wykorzystuje sesję ASP.NET jako pamięć masową. Dlatego jest przechowywany na serwerze (domyślnie jest to InProc). Ale można zdefiniować inne tryby stanu sesji ASP.NET: StateServer i SqlServer. Możesz również napisać niestandardowego dostawcę TempData i samemu obsługiwać pamięć, jeśli nie chcesz korzystać z sesji ASP.NET.

+0

Dziękuję bardzo. Zbadam więcej informacji na temat trybów stanu sesji ASP.NET, co jest dla mnie nowością. –

5

Jest on przechowywany w pamięci sesji, ale jest jedna zasadnicza różnica między TempData i Session:

TempData jest dostępny tylko dla sesji użytkownika, więc nie ustąpi tylko do mamy ją przeczytać i dostaje wyczyszczone na końcu żądania HTTP.

Scenariusz, który pasuje do korzystania z TempData, ma miejsce, gdy dane muszą pozostać między dwoma żądaniami - scenariusz przekierowania. Innym scenariuszem, jaki mogę wymyślić, jest zwrócenie komunikatu o błędzie po niepowodzeniu operacji POST.

+0

Dziękuję człowieku, chciałbym móc wybrać więcej niż jedną odpowiedź jako zaakceptowaną. –

+1

* TempData jest dostępna tylko dla sesji użytkownika, więc jest dostępna tylko do momentu jej przeczytania i zostanie wyczyszczona na końcu żądania HTTP. * Sesje trwają dłużej niż żądania HTTP. Czy * TempData jest dostępna tylko dla sesji użytkownika * jest poprawna? –

Powiązane problemy