2010-01-15 3 views
4

Je suis en train de mettre en œuvre la version MVC 2 RC, la dernière version de ASP.Net MVC et il ne peut pas faire un simple Controller.UpdateModel (objet) sans déclenchement de cette exception:Y at-il un bogue dans la version ASP.Net MVC 2 RC pour UpdateModel()?

Le modèle de type « [ Insérer l'espace de noms de l'objet mis à jour ici] 'n'a pas pu être mis à jour.

InvalidOperationException

est ici la trace de la pile:

à System.Web.Mvc.Controller.UpdateModel [TModel] (modèle TModel, préfixe String, String [] includeProperties, String [] excludeProperties, IValueProvider valueProvider) à System.Web.Mvc.Controller.UpdateModel [TModel] (modèle TModel) à Ccis.Cgov360.Web.InternalApp.Controllers.AdminController.MailingLabelTypeSelected() dans C: \ Projects \ Meadowlark \ Développement \ Meadowlark \ Applications \ InternalApp \ Controllers \ AdminController.cs: ligne 1528 à lambda_method (ExecutionScope, ControllerBase, Object []) à System.Web.Mvc.ActionMethodDispatcher.Execute (contrôleur ControllerBase, objet [] paramètres) à System.Web.Mvc.ReflectedActionDescriptor.Execute (ControllerContext ControllerContext, IDictionary 2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary deux paramètres) à System.Web.Mvc.ControllerActionInvoker . <> c__DisplayClassd.b__a() à System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter (filtre IActionFilter, ActionExecutingContext preContext, continuation Func`1)

Lorsque j'utilise MVC Preview 2 il fonctionne et met à jour le modèle très bien sans exceptions levées. J'ai vu ailleurs qu'il y a un bug dans la version RC, est-ce la même chose? J'ai passé beaucoup trop de temps à essayer de résoudre ce problème. J'espérais obtenir la version RC afin que nous puissions commencer à utiliser les helpers Html tels que TextBoxFor <>, CheckBoxFor <>, etc. et la validation côté client.

+4

Normalement, cela signifie que la validation a échoué et que le modèle est invalide. Quelle est la valeur de ModelState.IsValid? Si c'est faux, regardez les entrées dans ce dictionnaire pour voir quelle était l'erreur. – Levi

+0

@Levi était-ce une réponse que je l'avais upvote! –

+0

Merci Levi, tu viens de me donner l'indice suivant ... – DaveN59

Répondre

2

J'ai également rencontré ce problème. En guise de solution, j'appelle simplement TryUpdateModel() au lieu de UpdateModel().

3

Pour ajouter au commentaire de Levi, si vous attrapez l'exception et retournez la vue Edition, vous devriez voir le message de validation pour le champ (s) échec de validation, en supposant que votre vue contient:

<%= Html.ValidationMessageFor(model => model.name) %> 

Et votre L'action d'édition du contrôleur contient ...

 try { 
     UpdateModel(entity, new [] { "name", "address1", "address2", "city", "state", "zip" }); 
     TempData["Message"] = "Success"; 
     return RedirectToAction("List"); 
    } 
    catch { 
     TempData["Message"] = "Error saving form"; 
     return View(entity); 
    } 
Questions connexes