OK, commençons par la Html.Textbox. Il est censé contenir du texte lu dans un fichier. Le fichier lu est basé sur ce que l'utilisateur choisit dans une liste déroulante.MVT Html.textbox/dropdown/quel ne sera pas actualiser sur la publication
La première fois c'est bien. L'utilisateur sélectionne une valeur dans la liste déroulante. Le contrôleur utilise cette valeur pour lire du texte à partir d'un fichier et renvoie ce texte à la vue via le modèle de vue. Tout va bien.
Puis l'utilisateur sélectionne une autre valeur dans la liste déroulante. Le contrôleur lit une nouvelle valeur dans un fichier et la renvoie via le modèle de vue. Le débogage à la ligne AVANT que HTML.TEXTBOX est défini dans la vue montre que le modèle contient la valeur correcte. Cependant, la zone de texte elle-même affiche toujours la valeur PREVIOUS lorsque la page s'affiche!
Si je passe de Html.Textbox à une entrée simple, tapez = "text" html control, tout fonctionne bien. Ce n'est pas si difficile, mais la même chose arrive avec ma liste déroulante - je ne peux pas définir la valeur sélectionnée dans le code. Il revient toujours à tout ce qui a été choisi en dernier. Le rendu d'une balise "select" avec une liste d'options générée dynamiquement est pénible. J'aimerais pouvoir utiliser Html.Dropdown.
Qu'est-ce qui me manque ici ?? C'est une chose tellement simple dans les webforms!
J'ai le même comportement non intuitif. Sûrement le modèle est ce qu'il devrait être rendu, et le HtmlHelper devrait rendre le modèle? Si Model.CaptchaAttempt == "" avant que Html.TextBoxFor (m => m.CaptchaAttempt) s'exécute, il devrait sûrement rendre une zone de texte avec une valeur vide? Avez-vous résolu le problème? – jamiebarrow
J'ai effectivement trouvé la réponse - j'ai créé un autre thread (http: // stackoverflow.com/questions/3444994/how-to-effacer-textboxes-defined-with-mvc-html-helpers) comme je suppose que j'avais oublié de celui-ci. J'ai utilisé ModelState.SetModelValue pour les champs que je voulais mettre en blanc ou dans un état quelconque. Certains commentateurs pensaient que je devais faire RedirectToAction, mais j'ai répondu que je voulais être capable d'afficher un message de confirmation à l'utilisateur, ce qui nécessiterait de réafficher la même vue. Je pense qu'un message de confirmation est important, donc je l'ai fait de cette façon, même si ce n'est probablement pas une bonne pratique. – Cynthia