我在尝试在部分视图上渲染复选框时遇到困难。基本上,我想要的是基于从数据库中提取的值来呈现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不会呈现。
有人可以帮帮我吗?谢谢!
答案 0 :(得分:1)
我认为您的主要问题可能是因为您在if ...之前删除了@{
而不只是@
。
另外,为了方便起见,请在您的视图模型上创建一个新属性:
public bool IsActive
{
get { return Active == "Y"; }
}
然后在您的观点中,使用Html.CheckBoxFor(m=> m.IsActive)