我可以在View中使用它吗?
<%= Html.CheckBoxFor(user => user.Role, "Administrator")%>
如果选中复选框,则只读取模型中的属性值:
string role = user.Role;
(role = "Administrator")
答案 0 :(得分:2)
在你的模特中......
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) %>
答案 1 :(得分:0)
复选框被读作“true”或“false”,即它们是布尔类型。你可以做的是拥有一个带有IsAdmin属性的viewmodel,然后检查你的控制器是否属性为真。
// View
<%: Html.CheckBoxFor(model => model.IsAdmin)
// Controller
If(viewModel.IsAdmin)
{
doYourStuff();
}