.NET MVC Ajax Form сохраняет старые входные значения - как обновить до значения модели? - PullRequest
7 голосов
/ 01 марта 2012

У меня есть правильно работающая форма ajax в моем приложении MVC3 за исключением одного предупреждения. После того как я отправил форму и получил результат, даже если переданная модель имеет другое значение для ввода (сумма в примере ниже), старое значение все еще отображается на экране. Я приписываю это значению, которое сохраняется в DOM и переопределяет / предотвращает новое значение из модели. Есть несколько способов исправить это, запустив функцию javascript для одного из событий формы.

Я хотел бы получить отзыв о том, как лучше всего справиться с этой ситуацией, желательно нативно для MVC и без javascript. Вот фрагменты кода:

Родительский вид:

<div id="MyContainder">
    @Html.Partial("MyPartialView", ClassContainingAmountProperty)
</div>

Частичное представление:

@using (Ajax.BeginForm(actionName: "myaction",
              ajaxOptions: new AjaxOptions() UpdateTargetId = "MyContainder"})
      @Html.EditorFor(x => x.Amount)
      <input type="submit" value="Save" />
)

Контроллер

myModel.Amount = SomeNewNumber;
return PartialView(myModel); //same partial view returned but with new amount

Ответы [ 2 ]

21 голосов
/ 01 марта 2012

Как только я задаю вопрос, я нашел ответ! ASP.NET MVC 3 Ajax.BeginForm и Html.TextBoxFor не отражает изменения, сделанные на сервере

Вы должны вызвать

ModelState.Clear();

внутри действия перед возвратомчастичный вид

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

Попробуйте ввести

ModelState.Clear();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...