私は Twitter のブートストラップ フレームワークを使用しているので、EditorFor メソッドと DisplayFor メソッドで必要なものを出力するために、文字列、テキスト、パスワードなどのタイプごとにカスタム テンプレートを作成しました。ログイン ページには、RememberMe bool が必要なので、前と同じように、次のテンプレートを作成し、Boolean.cshtml に挿入しました。
@model bool
<div class="control-group">
<div class="controls">
<label class="checkbox">
@Html.CheckBoxFor(m => m, new {@class = "checkbox"})
@Html.LabelFor(m => m)
</label>
</div>
</div>
非常に単純ですが、使用すると:
@Html.EditorFor(m => m.RememberMe)
ベースとなる値を null にすることはできないという例外が発生します。
The model item passed into the dictionary is null, but this dictionary requires a non-null model item of type 'System.Boolean'.
私は何が欠けていますか?それはまっすぐ進むべきだと思われます。モデル オブジェクトのフィールドは次のようになります。
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
ありがとう。
更新:したがって、最終的には、MVC が独自に作成するのではなく、空のビュー モデル オブジェクトを作成してビューに渡すことが問題のようです。