1. ホーム
  2. asp.net-mvc-3

[解決済み] null可能なブーリアンに対するチェックボックス

2022-11-19 10:24:29

質問

私のモデルは、nullableでなければならないbooleanを持っています。

public bool? Foo
{
   get;
   set;
}

というわけで、私の Razor cshtml では、以下のようになります。

@Html.CheckBoxFor(m => m.Foo)

というようになりますが、これはうまくいきません。(bool)でキャストすることもできません。もし私が

@Html.CheckBoxFor(m => m.Foo.Value)

を実行すると、エラーは発生しませんが、投稿時に私のモデルにバインドされず、fooはnullに設定されています。ページ上にFooを表示し、投稿時に私のモデルにバインドさせる最良の方法は何でしょうか?

どのように解決するのですか?

私はそれが動作するようになった

@Html.EditorFor(model => model.Foo) 

で、Views/Shared/EditorTemplates/Boolean.cshtmlに以下のようなファイルを作成します。

@model bool?

@Html.CheckBox("", Model.GetValueOrDefault())