В MVC 2, как привязать Html.TextBox к свойству модели
-
18-09-2019 - |
Вопрос
У моей модели есть свойство «вывод», а в моей форме есть текстовое поле с именем «выход», оба написаны одинаково.Когда я заполняю форму и публикую ее, возвращающееся представление дает неожиданные результаты.
В частности, я получаю опубликованную переменную формы «выход», которая затем привязывается к моей модели в методе контроллера, затем я меняю эту переменную на другое значение, прежде чем передать модель обратно в представление.
Расположенное выходное свойство - это «одна вещь», мое свойство модели установлено на «Другое»
У меня есть это в моем коде: <%= Html.TextBox("output") %>
Что означает это: <input id="output" name="output" type="text" value="one thing" />
Однако при отладке Модель делает содержать правильное значение («другое»).
Он использует опубликованное значение, а не значение, назначенное в контроллере.Есть идеи, почему и как это исправить?
Решение
Предполагая, что вы используете строго типизированное представление, например:
<%@ Page ... Inherits="System.Web.Mvc.ViewPage<...TestModel>" %>
И наличие редактора для замены вашего
<%= Html.TextBox("output") %>
вот так <%= Html.EditorFor(p=>p.output) %>
вы можете сделать в своем контроллере
ModelState.SetModelValue("output", new ValueProviderResult("Some string", string.Empty, new CultureInfo("en-US")));
Похожий вопрос был задан здесь