In MVC 2, wie ein Html.TextBox zu einem Modell Eigenschaft zu binden
-
18-09-2019 - |
Frage
hat mein Modell eine Eigenschaft von „Output“ und meine Form hat einen Text namens „output“, beide geschrieben genau das gleiche. Wenn ich das Formular ausfüllen und per Post, die Rückansicht unerwartete Ergebnisse hat.
Insbesondere erhalte ich die geschrieben „output“ Form Variable, die dann zu meinem Modell in der Controller-Methode gebunden ist, dann habe ich diese Variable auf einen anderen Wert ändern, bevor ich das Modell zurück zur Ansicht übergeben.
Die gesendete Ausgabeeigenschaft ist „eine Sache“ meine Modell-Eigenschaft auf „anderen“
gesetzt Ich habe in meinem Code: <%= Html.TextBox("output") %>
Was macht diesen: <input id="output" name="output" type="text" value="one thing" />
Wenn jedoch das Debuggen, das Modell hat enthalten den richtigen Wert ( "andere").
Die mit dem Wertansatz, anstatt den Wert in der Steuerung zugeordnet. Irgendwelche Ideen, warum und wie man es beheben?
Lösung
Angenommen, Sie eine stark typisierte Ansicht verwenden wie folgt:
<%@ Page ... Inherits="System.Web.Mvc.ViewPage<...TestModel>" %>
Und mit einem EditorFor ersetzen Ihrem
<%= Html.TextBox("output") %>
wie so <%= Html.EditorFor(p=>p.output) %>
Sie können in dem Controller tun
ModelState.SetModelValue("output", new ValueProviderResult("Some string", string.Empty, new CultureInfo("en-US")));
Eine ähnliche Frage wird gebeten, hier