Niedawno zacząłem używać MVC i jestem trochę zawiedziony. Zamiast pomagać, ramy stają mi na drodze.Jak uzyskać kontrolę nad wiązaniem modelu?
Próbuję napisać działanie kontrolera tak (pseudo kod)
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 ....
}
Zasadniczo chciałbym mieć kontrolę nad tym, kiedy moim zdaniem model jest skonstruowany i gdy jest zatwierdzone. czy to możliwe? Jak mogę zaimplementować metodę CreateModel? Zastanów się, czy mogę chcieć utworzyć kilka różnych modeli widoku w ramach tego działania kontrolera.
* Rant: Nie do końca rozumiem, dlaczego powiązanie i weryfikacja modelu widoku są mieszane razem w DefaultModelBinder. Wygląda jak zapach kodu. Szczególnie, gdy trudno jest zmienić to zachowanie.
Dzięki za komentarze, czy chcesz dodać komentarz? :-) – Kugel
+1 Może oni nie lubili twojego * Rant, ale masz prawo do swojej opinii i nie widzę nic złego w tym pytaniu. Jeśli pytanie skutkuje dobrymi odpowiedziami, pytanie brzmi: grzywna IMO. – AaronLS