在视图中使用复选框并在模型中获取其值
Posted
技术标签:
【中文标题】在视图中使用复选框并在模型中获取其值【英文标题】:Use check box in view and get its value in model 【发布时间】:2010-08-20 12:52:17 【问题描述】:我可以在 View 中这样使用它吗?
<%= html.CheckBoxFor(user => user.Role, "Administrator")%>
如果选中复选框,则只需读取模型中的属性值:
string role = user.Role;
(role = "Administrator")
【问题讨论】:
【参考方案1】:在你的模型中...
public class UserEditModel
public string UserName get; set;
public string[] Role get; set;
在你看来……
<%: Html.TextBoxFor(x = x.UserName)<br />
<input type="checkbox" name="role" id="role_Administrator" value="Administrator" />
<input type="checkbox" name="role" id="role_Create_Project" value="Create Project" />
<!-- etc -->
是的,您需要为此场景编写原始 HTML。这将与 MVC 默认值正确绑定。默认的 CheckBoxFox 确实只适用于 True/False 绑定。类似的东西
<%: Html.CheckBoxFor(x => x.AcceptLicenseTerms) %>
或
<%: Html.CheckBoxFor(x => x.RememberMe) %>
【讨论】:
对不起,我有点困惑我都在这里做什么。谢谢介绍:)! 我认为这个特定场景(您的代码)更适合单选按钮组类型的选择。 我想制作能够添加新角色的下拉列表,那我需要使用复选框,我认为它更有意义还是??【参考方案2】:复选框被读取为“真”或“假”,即它们是布尔类型。您可以做的是拥有一个带有 IsAdmin 属性的视图模型,然后在该属性为 true 时签入您的控制器。
// View
<%: Html.CheckBoxFor(model => model.IsAdmin)
// Controller
If(viewModel.IsAdmin)
doYourStuff();
【讨论】:
以上是关于在视图中使用复选框并在模型中获取其值的主要内容,如果未能解决你的问题,请参考以下文章
Android 使用按钮和对话框复选框的多选项目,并在列表视图中显示所选项目而不是按钮