我想在公司访问中显示所有用户名,但是我可以这样做,同时必须从表单中检索所选的userroleid,以便保存在数据库中。
在视图中:
我有多个带有userroles的复选框,每个用户角色都有一个id。在选中特定复选框时,必须重新获取该用户标识。有什么建议吗?
我在视野中的代码是这样的: -
@foreach (var r in @Model.RolesList)
{
@Html.CheckBoxFor(Model1 => Model.UserRole) @r.RoleName
}
所以我想检索所选的复选框userroleid。怎么做?
答案 0 :(得分:0)
我曾经处理过类似情况
你可以做什么,你可以使用for循环并使用隐藏的元素来获取表格中的ID POST动作
@for (int i = 0; i < Model.RolesList.Count; i++)
{
@Html.CheckBoxFor(o => o.RolesList[i].UserRole.Checked)//checked is a bit that represents selected/unselected
@Html.Label(Model.RolesList[i].UserRole.Name)
@Html.HiddenFor(o => o.RolesList[i].UserRole.ID)
}
在表单帖子中,当您将表单与RolesList
列表绑定时,您将获得一个UserRole
,其ID为UserRole
,并检查位以表示是否已选中或未经选择的
就我而言,UserRole
不是bool,而是以下
public class UserRole
{
public long Id{set;get;}
public String Name {set; get;}
Public bool Checked {set;get;}
}
但是,由于您无法将UserRole
从bool
更改为我的建议,您可以尝试以下
@for (int i = 0; i < Model.RolesList.Count; i++)
{
@Html.CheckBoxFor(o => o.RolesList[i])
@Html.Label(Model.RolesList[i].Name) // what ever you want to display in the label
@Html.HiddenFor(o => o.RolesList[i].ID) // Id to uniquely identify each Role in RoleList
}
答案 1 :(得分:0)
@foreach (var r in @Model.RolesList)
{
@Html.CheckBoxFor(Model1 => r.UserRole) @r.RoleName<br />
}