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