Empecé a usar MVC recientemente y estoy un poco decepcionado. En lugar de ayudarme, el marco se interpone en mi camino.¿Cómo ganar control sobre el enlace del modelo?
Estoy intentando escribir una acción de controlador como este (pseudo código)
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 ....
}
Básicamente me gustaría tener el control sobre cuando mi vista-modelo se construye y cuando se valida. es posible? ¿Cómo puedo implementar el método CreateModel? Considere que puedo querer crear varios modelos de vista diferentes dentro de esta acción de controlador.
* Rant: Realmente no entiendo por qué el enlace y la validación del modelo de vista se mezclan en DefaultModelBinder. Parece que el código huele. Especialmente cuando es difícil anular este comportamiento.
Gracias por los votos a favor, ¿desea dejar un comentario? :-) – Kugel
+1 Tal vez no les gustó su * Rant pero tienen derecho a su opinión y no veo nada de malo en la pregunta. Si la pregunta resulta en buenas respuestas, entonces la pregunta está bien IMO. – AaronLS