MVC CheckBox渲染视图

时间:2012-07-20 01:06:13

标签: asp.net-mvc razor html.checkbox

我在尝试在部分视图上渲染复选框时遇到困难。基本上,我想要的是基于从数据库中提取的值来呈现checkBox。请参阅下面的代码:

        <div class="editor-label">
            @Html.LabelFor(model => model.Active)
        </div>
        <div class="editor-field">
            @{if (Model.Active == 'Y')
              { Html.CheckBox("Active", true); }
              else
              { Html.CheckBox("Active", true); }
                }
        </div>

在这个代码块中,我从模型中检查Active字段内的值,并根据该值将checkBox的isChecked属性呈现为true或false。

我调试了这段代码并使用了断点。我的数据库中的值为'Y',它确实通过了if语句。但是,当弹出窗体时,checkBox不会呈现。

有人可以帮帮我吗?谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您的主要问题可能是因为您在if ...之前删除了@{而不只是@

另外,为了方便起见,请在您的视图模型上创建一个新属性:

public bool IsActive
{
    get { return Active == "Y"; }
}

然后在您的观点中,使用Html.CheckBoxFor(m=> m.IsActive)