Где хранится TempData в ASP.NET MVC Framework (точнее, ASP.NET MVC 2)? Сохраняется ли она на стороне сервера или отправляется клиенту?
Где хранится TempData?
Ответ 1
По умолчанию TempData использует сессию ASP.NET как хранилище. Поэтому он хранится на сервере (InProc
по умолчанию). Но вы можете определить другие режимы состояния сеанса ASP.NET: StateServer и SqlServer. Вы также можете написать собственный поставщик TempData и самостоятельно обрабатывать хранилище, если вы не хотите использовать сеанс ASP.NET.
Ответ 2
Он хранится в хранилище сеансов, но есть одно существенное различие между TempData
и Session
:
TempData
доступен только для сеанса пользователя, поэтому он сохраняется только до тех пор, пока мы его не прочитаем и очистится в конце HTTP-запроса.
Сценарий, который подходит для использования TempData
, - это когда данные должны сохраняться между двумя запросами - сценарием переадресации. Другой сценарий, о котором я могу думать, - это вернуть сообщение об ошибке после сбоя операции POST.