Poiché stavo originariamente imparando su MVC, il libro che stavo usando ha insegnato la seguente tecnica per le azioni del controller:
public ActionResult MethodName(Model model) {
if (ModelState.IsValid) { }
else { }
}
Tuttavia, ho riscontrato rapidamente un problema non correlato e qualcuno su Stack Overflow mi ha indirizzato verso una nuova funzione in MVC3 simile a questa:
public ActionResult MethodName() {
var model = new Model();
if (TryUpdateModel(model)) { }
else { }
}
Quella nuova tecnica TryUpdateModel()
mi ha aiutato in un problema a parte che stavo incontrando (a parte quello della mia domanda), quindi l'ho usato per un po '. Tuttavia, di recente ho riscontrato un paio di problemi minori che mi hanno indotto a tornare all'originale con ModelState.IsValid
.
Nessuno dei due bug è mai stato così importante, quindi mi sembra che questo sia più uno scenario di "best practice". Questi bug minori potrebbero essere stati causati da altri problemi nel codice che ho scritto.
Qual è l'esperienza di tutti tra queste due metodologie? (Per la cronaca, questo è con MVC3 e MVC4 in C # 4.0 e Visual Studio 2010.)