使用视图中的复选框并在模型中获取其值

时间:2010-08-20 12:52:18

标签: c# asp.net-mvc model checkbox view

我可以在View中使用它吗?

<%= Html.CheckBoxFor(user => user.Role, "Administrator")%>

如果选中复选框,则只读取模型中的属性值:

string role = user.Role;
(role = "Administrator")

2 个答案:

答案 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();
}