【发布时间】:2010-08-20 12:52:17
【问题描述】:
我可以在 View 中这样使用它吗?
<%= Html.CheckBoxFor(user => user.Role, "Administrator")%>
如果选中复选框,则只需读取模型中的属性值:
string role = user.Role;
(role = "Administrator")
【问题讨论】:
标签: c# asp.net-mvc model checkbox view
我可以在 View 中这样使用它吗?
<%= Html.CheckBoxFor(user => user.Role, "Administrator")%>
如果选中复选框,则只需读取模型中的属性值:
string role = user.Role;
(role = "Administrator")
【问题讨论】:
标签: c# asp.net-mvc model checkbox view
在你的模型中...
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) %>
【讨论】:
复选框被读取为“真”或“假”,即它们是布尔类型。您可以做的是拥有一个带有 IsAdmin 属性的视图模型,然后在该属性为 true 时签入您的控制器。
// View
<%: Html.CheckBoxFor(model => model.IsAdmin)
// Controller
If(viewModel.IsAdmin)
{
doYourStuff();
}
【讨论】: