В книге Скотта Хансельмана (глава 1) он предоставляет нам два варианта реализации [HttpPost] для метода действия Create.
Первый использует TryUpdateModel для обновления объекта модели на основе полей входящей формы. Если входящие поля формы содержат неверные данные, для ModelState.IsValid будет установлено значение false.
[HttpPost]
public ActionResult Create(FormCollection collection)
{
Dinner dinner = new Dinner();
if (TryUpdateModel(dinner))
{
dinnerRepository.Add(dinner);
dinnerRepository.Save();
return RedirectToAction("Details", new { id = dinner.DinnerId });
}
else
return View(dinner);
}
Второй метод заключается в использовании модели, переданной как метод действия Create, следующим образом:
[HttpPost]
public ActionResult Create(Dinner dinner)
{
if (ModelState.IsValid)
{
dinnerRepository.Add(dinner);
dinnerRepository.Save();
return RedirectToAction("Details", new { id = dinner.DinnerId });
}
else
return View(dinner);
}
Какой из них больше рекомендуется использовать в производстве?