Re[3]: [MVC] Post-Redirect-Get и автоматизация форм
От: SE Украина  
Дата: 14.07.10 11:32
Оценка:
Здравствуйте, Ocenochka, Вы писали:
O> Только получается, что после не валидного поста, рендеринга формы с валидационными сообщениями
O> можно исправить форму, а потом нажать F5 (browser.refresh) и получить во-первых сообщение-подтверждение браузера о повторной
O> отправке, а во-вторых после отправки будут предыдущие ошибки валидации, не смотря на изменения полей формы, но это я наверно уже придираюсь.
O> Спасибо, попробую такой вариант.

Попробуйте както так, мои добавления выделены жирным

ММ>>
[HttpGet]
public ActionResult A()
{
   var model = TempData["mymodel"] != null ? ((Model) TempData["mymodel"]) : new Model(); 
   return View(model);
}

[HttpPost]
public ActionResult A(Model model)
{
   if(!ModelState.IsValid)
   {
       TempData["mymodel"] = this.ModelState;
       return RedirectToAction(MVC.ThisController.A);
   }

   
   return RedirectToAction(MVC.ThisController.C);
}

[HttpGet]
public ActionResult C()
{
   var model = TempData["model"];
   return View(model);
}


Теперь в случае, если валидация не пройдена, пользователя будет перекидывать обратно на A, сохраняя при этом данные.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.