Сохранение свойства модели при отправке формы - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь выяснить, почему значения свойств не сохраняются, когда я возвращаю представление с моделью.

Index.cshtml

Представление:

@Html.HiddenFor(model => model.IsWtv)

Контроллер:

[HttpPost]
public ActionResult Index([Bind(Exclude = "Id,ShippingCost")] TestModels model)
{
   //assume the initial value is false. I only want it to switch to true once
   if (!model.IsWtv)
      model.IsWtv = true;

   return View(model);
}

Модель:

public Boolean IsWtv
{
   get;
   set;
}

Значение для IsWtv всегда ложно, когда я повторно отправляю форму.Я не понимаю, почему?

1 Ответ

0 голосов
/ 12 февраля 2019

Во-первых, вы действительно должны следовать шаблону PRG (POST, Redirect, GET) при работе с методами действия контроллера (если это не какой-то тип запроса AJAX).

С учетом сказанного, HtmlHelpersполучить значения модели из состояния модели, а не модель при обновлении и возврате модели.Чтобы обновить и вернуть модель, добавьте эту строку кода в метод post перед любыми изменениями свойства:

ModelState.Clear();

или вы можете установить значение IsWtv в самом ModelState:

//no point in doing any check on the actual variable
//we are always returning true
ModelState["IsWtv"].Value = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...