Флажок MVC должен быть снят - PullRequest
1 голос
/ 05 ноября 2011

У меня есть несколько флажков, значения которых опубликованы в действии, и когда действие снова вызывает представление, флажки проверяются в соответствии с их предыдущим состоянием:

<div class="D2">@Html.CheckBox("int", false, new { id = "int" })</div>
<div class="D2">@Html.CheckBox("ext", false, new { id = "ext" })</div>
<div class="D2">@Html.CheckBox("none", false, new { style = "visibility:hidden", id = "none" }
</div>

Действие:

public ActionResult Images(bool? int, bool? ext, bool? none)
return View();

Но я хочу, чтобы третий флажок ВСЕГДА был снят, в то время как остальные должны сохранять настройки.Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 05 ноября 2011

Вспомогательные методы Html ВСЕГДА получают значение из ModelState, если могут.
Чтобы убедиться, что третий флажок снят, вы должны очистить значение ModelState в вашем контроллере:

public ActionResult Images(bool? int, bool? ext, bool? none) {
    ModelState.Remove("none");
    return View();
}

Подробнее см. ModelState.Remove.

0 голосов
/ 05 ноября 2011

Если вы хотите, чтобы он всегда был непроверенным, зачем даже отправлять его в метод, просто используйте значение false в вашем ActionResult.Он не должен присутствовать в списке параметров.Я что-то здесь не слежу?

...