Em MVC 2, como ligar um Html.TextBox a uma propriedade modelo
-
18-09-2019 - |
Pergunta
O meu modelo tem uma propriedade de "output" e meu formulário tem uma caixa de texto com o nome "output", tanto escrito exatamente o mesmo. Quando eu preencher o formulário e publicá-la, a visão retornando tem resultados inesperados.
Especificamente, eu receber o "output" variável de formulário publicado, que é então ligado ao meu modelo no método Controller, então eu mudar esta variável para um valor diferente antes de eu passar a volta Modelo para a vista.
a propriedade de saída postada é "uma coisa" minha propriedade modelo é definido como "outra"
Eu tenho isso no meu código: <%= Html.TextBox("output") %>
O que torna a isto: <input id="output" name="output" type="text" value="one thing" />
No entanto, quando a depuração, o Modelo faz conter o valor correto ( "outro").
A sua usando o valor afixado em vez do valor atribuído no controlador. Alguma idéia por que e como corrigi-lo?
Solução
Assumindo que você está usando uma visão fortemente tipado assim:
<%@ Page ... Inherits="System.Web.Mvc.ViewPage<...TestModel>" %>
E ter um EditorFor substituir o seu
<%= Html.TextBox("output") %>
como assim <%= Html.EditorFor(p=>p.output) %>
você pode fazer em seu controlador
ModelState.SetModelValue("output", new ValueProviderResult("Some string", string.Empty, new CultureInfo("en-US")));
Uma pergunta semelhante foi perguntado aqui