我正在尝试使用以下代码定义一个 Boolean.cshtml 以与 EditorFor 一起使用:

@{
   var o = ViewData.ModelMetadata;
}

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

不幸的是,模型为空,我收到以下非描述性错误:



阅读本文后,我尝试了以下操作:
@Html.CheckBox(o.PropertyName,
               ViewData.Model ?? false,
               new { @class="tickbox-single-line" })

但我得到完全相同的错误。 View 代码很简单:
@Html.EditorFor(m => m.RememberMe)

我在 Boolean.cshtml 中做错了什么?

最佳答案

不确定这是最好的方法,但我认为你只是对 ViewData.Model 有问题,这是(如果我没记错的话),动态问题。

所以……投吧!

@{
   var o = ViewData.ModelMetadata;
   bool model = (bool)ViewData.Model;
}

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

但如果我没记错的话,EditorTemplate 应该看起来像
@model bool

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

关于.net - 如何为 bool 值创建编辑器模板? (.EditorFor<>),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12976784/

10-13 06:17