J'essaie de mettre à jour certaines propriétés d'objet en appelant UpdateModel(myObject, new[] { "stringprop1", "stringprop2", "intprop"})
.ASP.NET MVC UpdateModel défaillant de manière inattendue
Ceci échoue pour une raison inconnue. Plusieurs propriétés de chaîne sont mises à jour avec succès. Lorsque j'essaie de mettre à jour une propriété int, elle échoue. La nouvelle valeur int est envoyée à partir d'une liste de sélection html sur la vue.
Je peux voir les données de la vue dans mon ValueProvider. La clé correspond au nom de la propriété de l'objet et la valeur est ce que j'attends de la vue (sauf que c'est une chaîne.) Je pensais que UpdateModel pouvait gérer les conversions de type simples
Lorsque j'appelle UpdateModel une exception InvalidOperationException est levée, SEULEMENT SI valeur de la propriété change.
en outre, l'objet est un Linq sql objet généré.
EDIT
Recherche par modèle d'état après avoir appelé TryUpdateModel, je vois cette exception sur la propriété que je ne parviens pas à avec:
- Exception {"Operation is not valid due to the current state of the object."} System.Exception {System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException}
La valeur que j'essaie de mettre à jour est une clé étrangère. Pourquoi ne puis-je pas mettre à jour cette valeur? Merci pour toute aide?
EDIT 2
Je trouve ceci: http://social.msdn.microsoft.com/Forums/en-US/linqtosql/thread/f9c4a01a-195a-4f2b-a1cb-e2fa06e28b25
J'aurais juré que je l'ai changé la clé au lieu de la propriété de l'association avant, mais peu importe. Que peut-on faire dans cette situation de reliure de modèles MVC?
J'ai eu le même problème que vous décrivez et il a été résolu en instanciant juste un nouveau DataContext - je ne peux pas expliquer pourquoi cependant. Des idées? –