Вид не влияет на изменения моделей - PullRequest
1 голос
/ 02 марта 2012

У меня есть действие get, у которого есть пара параметров. В связи с этим у меня есть форма, которая заполняется после получения действия. Действие создает экземпляр модели, используя полученные параметры, но если параметр имеет специальное значение, то действие устанавливается для моделирования некоторых значений по умолчанию, несмотря на параметры. После этого действия верните вид с моделью. Проблема в том, что после изменения модели в View отображаются данные параметров, а не из измененной модели.

1 Ответ

3 голосов
/ 02 марта 2012

Это происходит потому, что изначально все помощники HTML обращаются к ModelState при привязке, а затем в самой модели. Поэтому, если вы намереваетесь изменить какое-либо значение, которое было частью запроса POST, вам сначала нужно удалить его из ModelState, если вы хотите, чтобы это изменение было отражено в представлении:

[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
    // We remove the Bar property that was part of the request because
    // we modify its value here
    ModelState.Remove("Bar");
    model.Bar = "Some modified value";

    return View(model);
}

Предполагается, что в соответствующем представлении у вас есть поле ввода для него:

@Html.EditorFor(x => x.Bar)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...