MVC С# TempData
Может кто-нибудь объяснить причину TempData в MVC.
Я понимаю, что он ведет себя как ViewBag, но что он делает дальше этого.
Ответы
Ответ 1
TempData должен быть очень коротким экземпляром, и вы должны используйте его только во время текущего и последующих запросов! поскольку TempData работает таким образом, вы должны точно знать, что следующий запрос будет, и перенаправление на другое представление - это единственный раз, когда вы может гарантировать это. Поэтому единственный сценарий использования TempData будет надежно работать, когда вы перенаправляете. Это связано с тем, что redirect убивает текущий запрос (и отправляет код статуса HTTP 302 Объект Перемещено на клиент), затем создает новый запрос на сервере для обслуживания перенаправленного представления. Оглядываясь назад Образец кода HomeController означает, что объект TempData может результаты отличаются от ожидаемых, поскольку следующий запрос не может быть гарантировано. Например, следующий запрос может возникнуть из полностью другой экземпляр машины и браузера.
http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications
Ответ 2
ViewBag
Позволяет создавать динамические свойства
Передача данных между контроллером и представлением
контроллер
ViewBag.Name= "Lion";
Просмотр
<div>
<h4>@ViewBag.Name</h4>
</div>
TempDataSTRONG >
TempData должен быть очень коротким экземпляром
вы должны использовать его только во время текущего и последующих запросов
Словарь TempData используется для обмена данными между действиями контроллера.
TempData["Name"] = "Lion";
Я написал сообщение в блоге об этом. Проверьте, что Как правильно использовать ASP.NET TempData?
Ответ 3
TempData - это объект словаря, который получен из класса TempDataDictionary и хранится в сеансе коротких жизней.
public TempDataDictionary TempData { get; set; }
Это свойство класса ControllerBase. Оно используется для передачи данных из текущего запроса на последующий запрос (означает перенаправление с одной страницы на другую).
Его жизнь очень коротка и лежит только до тех пор, пока целевой вид не будет полностью загружен.
Его требуемая типизация для получения данных и проверка нулевых значений, чтобы избежать ошибки. Он используется для хранения только однократных сообщений, таких как сообщения об ошибках, сообщения проверки.
Ответ 4
Что такое TempData?
Tempdata помогает хранить/сохранять значения внутри одного запроса. Это одна из концепций сохранения состояния в ASP.Net MVC.
Как хранить/сохранять данные в следующем запросе?
TempData сохраняет значения для следующего запроса в 4 разных условиях в MVC. Они
Условие 1 - Не прочитано в первом запросе.
Условие 2 - Чтение в первый запрос.
Условие 3 - Чтение и сохранение с использованием Keep.
Условие 4 - Персистент с помощью Peek и Read.
Не читать в первом запросе. Если мы не читаем "TempData" в текущем запросе, значение "TempData" будет сохранено для следующего запроса.
Чтение в первом запросе: Если мы читаем "TempData" в текущем запросе, то значение "TempData" не будет сохраняться для следующего запроса.
Чтение и сохранение с использованием Keep: Если мы читаем "TempData" в текущем запросе, и мы можем сохранить метод для сохранения TempData для следующего запроса. В MVC у нас есть методы void keep() и void keep (string key) для сохранения данных.
http://dotnet-helpers.com/mvc/how-to-persist-data-with-tempdata-using-peek-and-keep-in-mvc/