Я недавно начал использовать MVC и немного разочаровываюсь. Вместо того, чтобы помочь мне, структура мешает мне.
Я пытаюсь написать такое действие контроллера (псевдокод)
ActionResult Save(long id, string whichForm)
{
if (whichForm == "A")
{
var vm = CreateModel(Request.Form);
if (!TryValidate(vm))
return View(vm);
else
return RedirectToRoute("Success");
}
else ....
}
В принципе, я хотел бы иметь контроль над тем, когда моя модель представления построена и когда она проверяется. Возможно ли это? Как реализовать метод CreateModel? Возможно, я захочу создать несколько различных моделей представлений в рамках этого действия контроллера.
*Rant: Я не очень понимаю, почему привязка и проверка модели представления смешиваются вместе в DefaultModelBinder. Похоже на запах кода. Особенно, когда трудно переопределить это поведение.