В MVC 2, как привязать Html.TextBox к свойству модели

StackOverflow https://stackoverflow.com/questions/1882170

  •  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")));

Похожий вопрос был задан здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top