J'ai un problème en changeant la valeur d'une zone de texte dans MVC 3.Impossible de modifier la valeur d'une zone de texte dans ASP.NET MVC 3
J'ai une vue simple qui est renvoyée par un contrôleur et est tapé sur un modèle de vue personnalisé. Une zone de texte sur la vue est liée à une propriété de chaîne sur le modèle de vue. Si je remplis cette chaîne lors du chargement initial, la valeur de la zone de texte contient la valeur de la chaîne. Toutefois, si je renvoie ensuite un formulaire à la même URL et modifie la valeur de chaîne de modèle de vue et recharger la vue, la zone de texte contient la valeur qui a été renvoyée, pas la valeur fournie par le contrôleur pour le modèle de vue. J'ai créé un projet de test simple pour recréer le problème de la manière la plus simple possible.
Voir Modèle:
http://www.codetunnel.com/content/images/textboxproblem/ViewModel.jpg
Controller:
http://www.codetunnel.com/content/images/textboxproblem/Controller.jpg
Vue:
http://www.codetunnel.com/content/images/textboxproblem/View.jpg
Dans la vue j'afficher la valeur de chaîne de modèle de vue et je lie également la propriété de chaîne à une zone de texte.
Sur initial, tout charge semble bien:
http://www.codetunnel.com/content/images/textboxproblem/InitialLoadTest.jpg
Cependant, si je change la valeur de la zone de texte, puis appuyez sur Entrée pour afficher les choses de forme ne se produisent pas comme je m'y attendais. La valeur affichée est la valeur du régulateur situé dans la méthode d'action, mais la zone de texte conserve la valeur qui a été réaffecté:
http://www.codetunnel.com/content/images/textboxproblem/POSTTest.jpg
Je ne sais pas quel est le problème. Toute idée est appréciée.
Merci pour cela. Je ne peux pas croire que je n'ai pas pensé à ModelState puisque c'est ainsi que fonctionne la validation quand elle affiche des valeurs. Merci counsellorben. – Chev
De rien. C'est juste quelque chose qui peut être mystifiant, car il semble d'abord se lier à ModelState.Puisque le modèle étant passé est l'intention la plus récente du développeur, vous vous attendez à ce que ce soit le premier. C'est la vie. – counsellorben
Un aperçu de pourquoi c'est? J'ai déjà vécu cela dans le passé et c'est, comme vous le dites, une erreur. Je ne peux que supposer qu'ils avaient une bonne raison de le faire .. – egoodberry