2012-07-20 81 views
0

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

在这个代码块,我检查了从我的模型活动领域内的价值,使该复选框以true或false基于该值的财产器isChecked。

我调试了这段代码并使用了一个断点。我的数据库中有'Y'的值,它通过了if语句。但是,当表单弹出时,checkBox没有渲染。

有人可以帮我吗?谢谢!

回答

1

我认为你的主要问题可能是因为你有@{而不是只有@之前的if ..试试删除那个。

也,以使事情更容易..你的视图模型创建一个新的属性:

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

然后在你看来,使用Html.CheckBoxFor(m=> m.IsActive)

+0

谢谢!这使我的编码变得更容易了! – Smiley 2012-07-20 01:21:25

+0

不客气。如果是这样,请将其标记为“答案”。 :) – Matt 2012-07-20 01:22:26