Я реализую ASP.NET MVC post/redirect/getpattern на веб-сайте Azure. Когда пользователь создает новый объект, он перенаправляется из представления создания в представление редактирования с новым идентификатором объекта как частью URL-адреса.
Объект имеет довольно много полей, поэтому нередко приходится сохранять несколько раз, и чтобы убедить пользователя в том, что его данные сохраняются, мы показываем сообщение «Успешно сохранено» с использованием javascript.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Branch branch, int orgs)
{
if (ModelState.IsValid)
{
// model is valid, save it and redirect to edit
_branchRepository.Save(branch);
TempData["Message"] = new NotificationViewModel(NotificationSeverity.Success,
"Saved",
"Saved successfully");
return RedirectToAction("Edit", new { id = branch.Id });
}
// model is invalid, don't save it, let them have another go
TempData["Message"] = new NotificationViewModel(NotificationSeverity.Warning,
"I'm sorry, Dave.",
"I'm afraid I can't do that.");
ModelState.Clear();
return View("Edit", branch);
}
Мое понимание TempData заключается в том, что любые данные, хранящиеся в TempData, будут храниться в течение всей жизни только для текущего запроса и следующего запроса (или до тех пор, пока элемент не будет удален явно), и это лучшее место для размещения данных, которые вы хотите передать другому представлению, которое вы будет перенаправлен на.
Является ли TempData лучшим местом для этого сообщения?
Примечание. Я читал, что если вы балансируете нагрузку на свои веб-серверы, у вас должны быть включены фиксированные сеансы. Включает ли Azure Sticky Sessions автоматически или вам нужно настроить это вручную?