Я работаю над веб-приложением ASP.NET MVC 3, где я использую TempData для хранения объекта модели , в сценарии, где пользователь не вошел в систему.
Вот последовательность действий:
После шага 3 я мог подумать, что TempData будет очищена?
Вот код:
[HttpGet]
public ActionResult Foo()
{
var prefilled = TempData["xxxx"] as MyModel;
if (prefilled != null)
{
return Foo(prefilled);
}
}
[HttpPost]
[StatefulAuthorize] // handles the tempdata storage and redirect to logon page
public ActionResult Foo(MyModel model)
{
// saves to db.. etc
}
Я обнаружил это статья , в которой говорится:
Что ж, читая его с помощью TempData ["xxx"]
, разве это не "чтение", и поэтому их следует пометить для удаления?
И последний вопрос меня немного беспокоит - поскольку Я делаю перенаправление после POST (PRG). Но этого не избежать.
Есть ли способ сказать «брось этот предмет». TempData.Remove? Или я делаю это неправильно?