Question

Mon modèle a une propriété de « sortie » et ma forme a une zone de texte nommé « sortie », à la fois orthographié exactement la même chose. Quand je remplis le formulaire et le poster, le point de vue retour a des résultats inattendus.

Plus précisément, je reçois la variable affichée de forme « de sortie » qui est alors lié à mon modèle dans la méthode du contrôleur, puis-je modifier cette variable à une valeur différente avant de passer le modèle de retour à la vue.

la propriété de sortie affiché est « une chose » ma propriété de modèle est réglé sur « une autre »

Je dans mon code: <%= Html.TextBox("output") %>

Ce qui rend ceci: <input id="output" name="output" type="text" value="one thing" />

Toutefois, lorsque le débogage, le modèle fait contient la valeur correcte ( "autre").

L'utilisation de la valeur affichée plutôt que la valeur attribuée dans le contrôleur. Toutes les idées pourquoi et comment y remédier?

Était-ce utile?

La solution

En supposant que vous utilisez une vue fortement typé comme ceci:

<%@ Page ... Inherits="System.Web.Mvc.ViewPage<...TestModel>" %>

Et ayant un EditorFor remplacer votre

<%= Html.TextBox("output") %> comme si <%= Html.EditorFor(p=>p.output) %>

vous pouvez faire dans votre contrôleur

ModelState.SetModelValue("output", new ValueProviderResult("Some string", string.Empty, new CultureInfo("en-US")));

Une question similaire a été posée

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top