4

次のコードを使用して、Boolean.cshtml を EditorFor で使用するように定義しようとしています。

@{
   var o = ViewData.ModelMetadata;
}

<div class="editor-for">
    @Html.CheckBox(o.PropertyName,
                   ViewData.Model,
                   new { @class="tickbox-single-line" })
</div>

残念ながら、モデルは null であり、次の説明のないエラーが発生します。

CS1973: 'System.Web.Mvc.HtmlHelper' には 'CheckBox' という名前の適用可能なメソッドがありませんが、その名前の拡張メソッドがあるようです。拡張メソッドは動的にディスパッチできません。動的引数をキャストするか、拡張メソッド構文を使用せずに拡張メソッドを呼び出すことを検討してください。

これを読んだ後、私は次のことを試しました:

@Html.CheckBox(o.PropertyName,
               ViewData.Model ?? false,
               new { @class="tickbox-single-line" })

しかし、まったく同じエラーが発生します。ビューのコードは次のとおりです。

@Html.EditorFor(m => m.RememberMe)

Boolean.cshtml で何が間違っていますか?

4

2 に答える 2

3

これは少し遅れていますが、CheckBoxFor を使用して単純化することもできます。

私の EditorTemplate は単純です:

@model bool

@Html.CheckBoxFor(m => m)
于 2013-03-06T17:54:56.323 に答える