En MVC 2, la forma de enlazar un Html.TextBox a una propiedad Modelo
-
18-09-2019 - |
Pregunta
Mi modelo tiene una propiedad de "salida" y mi forma tiene un cuadro de texto llamado "salida", tanto escrito exactamente lo mismo. Cuando llene la forma y que lo ponga, la vista de regresar tiene resultados inesperados.
Específicamente, recibo el "output" variable de formulario publicado que después se une a mi modelo en el Método Controller, entonces puedo cambiar esta variable a un valor diferente antes de pasar el Modelo de nuevo a la vista.
la propiedad de salida publicado es "una cosa" Modelo de mi propiedad se establece en "otra"
Tengo esto en mi código: <%= Html.TextBox("output") %>
que hace a este: <input id="output" name="output" type="text" value="one thing" />
Sin embargo, cuando la depuración, el Modelo hace contiene el valor correcto ( "otros").
Su usando el valor publicado en lugar del valor asignado en el controlador. Cualquier idea por qué y cómo solucionarlo?
Solución
Si se asume que está utilizando una visión inflexible de este modo:
<%@ Page ... Inherits="System.Web.Mvc.ViewPage<...TestModel>" %>
Y teniendo un EditorFor la sustitución de su
<%= Html.TextBox("output") %>
al igual que <%= Html.EditorFor(p=>p.output) %>
se puede hacer en su controlador
ModelState.SetModelValue("output", new ValueProviderResult("Some string", string.Empty, new CultureInfo("en-US")));
Una pregunta similar se ha pedido aquí