In MVC 2, come associare un Html.TextBox a una proprietà del modello
-
18-09-2019 - |
Domanda
Il mio modello ha una proprietà di "uscita" e la mia forma ha una TextBox denominato "uscita", sia scritto esattamente lo stesso. Quando ho compilare il modulo e post-it, la vista di ritorno ha risultati inaspettati.
In particolare, ricevo la variabile modulo pubblicato "uscita" che viene poi legato al mio modello nel metodo di controllo, allora cambio questa variabile ad un valore diverso prima di passare al modello di nuovo alla vista.
la proprietà di uscita è registrato "una cosa" la mia proprietà modello è impostato su "un altro"
Ho questo nel mio codice: <%= Html.TextBox("output") %>
che rende a questo: <input id="output" name="output" type="text" value="one thing" />
Tuttavia, quando il debug, il modello non contenere il valore corretto ( "un altro").
Il suo utilizzando il valore di iscrizione piuttosto che il valore assegnato nel controller. Tutte le idee perché e come risolvere il problema?
Soluzione
Supponendo che si sta utilizzando una vista fortemente tipizzato in questo modo:
<%@ Page ... Inherits="System.Web.Mvc.ViewPage<...TestModel>" %>
E avendo un EditorFor sostituire il
<%= Html.TextBox("output") %>
in questo modo <%= Html.EditorFor(p=>p.output) %>
si può fare nel vostro controller
ModelState.SetModelValue("output", new ValueProviderResult("Some string", string.Empty, new CultureInfo("en-US")));
Una domanda simile è stata posta qui