Моя модель имеет логическое значение, которое должно допускать значение NULL
public bool? Foo
{
get;
set;
}
, поэтому в моем Razor cshtml у меня есть
@Html.CheckBoxFor(m => m.Foo)
, но это не работает. Также не выполняется приведение с помощью (bool). Если я сделаю
@Html.CheckBoxFor(m => m.Foo.Value)
, это не вызовет ошибки, но не привяжется к моей модели при публикации, а для foo установлено значение null. Как лучше всего отобразить Foo на странице и привязать его к моей модели в сообщении?
Переключатели полезны, но они не позволяют Вам отмена выбора . Если Вы хотите это поведение, то рассматриваете использование выпадающего/избранного. Следующий код генерирует SelectList
, и это связывает успешно с nullable булевской переменной:
public static SelectList GetBoolTriState()
{
var items = new List<SelectListItem>
{
new SelectListItem {Value = "", Text = ""},
new SelectListItem {Value = "True", Text = "Yes"},
new SelectListItem {Value = "False", Text = "No"},
};
return new SelectList(items, "Value", "Text");
}