0

我想在我的公司访问中显示所有用户角色,但是我可以这样做,同时必须从表单中检索选定的用户角色,以便保存在数据库中。

在视图中:

我有多个带有用户角色的复选框,每个用户角色都有一个 ID。在选中特定复选框时,必须检索该用户角色 ID。请问有什么建议吗??

我的代码是这样的: -

@foreach (var r in @Model.RolesList)
{
  @Html.CheckBoxFor(Model1 => Model.UserRole) @r.RoleName
}

所以我想检索选中的复选框 userroleid 。如何做到这一点?

4

2 回答 2

0

我曾经处理过类似的情况

你可以做什么,你可以使用 for 循环并使用隐藏元素以 POST Action 的形式获取 Id

@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)
}

在表单发布中,当您将表单与 List of 绑定时,RolesList您将获得一个 UserRole具有 IdUserRole和选中位来表示它是被选中还是未选中的

就我而言,UserRole不是布尔值,而是以下

public class UserRole
{
   public long Id{set;get;}
   public String Name {set; get;}
   Public bool Checked {set;get;}
}

但是由于您无法将UserRolefrom更改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
}
于 2013-05-24T07:30:46.990 回答
0
@foreach (var r in @Model.RolesList)
                 {
                    @Html.CheckBoxFor(Model1 => r.UserRole) @r.RoleName<br />
                 }
于 2013-05-24T08:25:15.580 回答