J'ai un objet qui était auparavant aller-retour du serveur vers le client et de retour bien (c'est-à-dire modifier et afficher les formulaires a bien fonctionné). Cependant, j'ai ajouté à cet objet un type complexe et créé un ModelBinder personnalisé pour le gérer. Le type complexe peut être représenté comme une seule chaîne, mais est stocké dans l'objet en tant que Decimal (pensez "0 ft. 3in." Peut être stocké en 0.25).MVC 2, Custom ModelBinder, et de stocker la "valeur de tentative" pour la vue
Mon problème, cependant, est lorsque la validation échoue. Si un utilisateur tape "asdf", la validation échoue. Mais ce qui est stocké dans la décimale est juste 0. Ainsi, quand la vue est rendue et envoyée à l'utilisateur, ils voient simplement "0" et un message d'erreur, plutôt que de voir "asdf". Je n'ai pas ce problème avec le ModelBinder par défaut (les autres champs font l'aller-retour de la chaîne invalide), donc je dois manquer quelque chose dans mon ModelBinder personnalisé ... mais qu'est-ce que c'est?
J'ai essayé d'appeler
bindingContext.ModelState.SetModelValue(bindingContext.ModelName, New ValueProviderResult(null, attemptedValue, Globalization.CultureInfo.CurrentCulture))
Mais il ne semble pas affecter quoi que ce soit.