Я знаю, что было много людей, которые сталкивались с этой проблемой, но я не думаю, что они когда-либо решили ее.
У меня есть такая страница бритвы:
@model MyModel
<div>
@using (Html.BeginForm("MyMethod", "Home", FormMethod.Get))
{
@Html.CheckBoxFor(model => model.MyBool)
@Html.LabelFor(model => model.MyBool)
<input type="submit" class="btn" value="Fire it up" />
}
</div>
Моя модель выглядит так:
public class MyModel
{
[DisplayName("My checkbox")]
public bool MyBool {get; set;}
}
И мой метод в домашнем контроллере выглядит так:
public IActionResult MyMethod(MyModel model)
{
return View();
}
Все выглядит хорошо для меня, но тогда, независимо от того, установлен ли я флажок или нет, параметр модели в методе MyMethod всегда ложен после отправки формы.
Что я делаю не так?
EDIT:
Когда я отмечаю флажок, запрос GET содержит оба значения - true и false.
Я видел, как некоторые люди говорят, что MVC должен справиться с этим, но, очевидно, это не так.