0

会社のアクセスですべてのユーザーロールを表示したいのですが、これを行うことができ、同時に選択したユーザーロール ID をフォームから取得してデータベースに保存する必要があります。

ビューで:

ユーザー ロールを含む複数のチェック ボックスがあり、すべてのユーザー ロールに ID があります。特定のチェックボックスをオンにすると、そのユーザーロール ID を取得する必要があります。何か提案をお願いします??

ビューの私のコードは次のようなものです:-

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

だから私は選択したチェックボックス userroleid を取得したい.How to do this??

4

2 に答える 2

0
@foreach (var r in @Model.RolesList)
                 {
                    @Html.CheckBoxFor(Model1 => r.UserRole) @r.RoleName<br />
                 }
于 2013-05-24T08:25:15.580 に答える
0

私は一度同様の状況を処理しました

forループを使用し、非表示の要素を使用してフォームPOSTアクションで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 にバインドすると、選択されているか選択されていないかを表すId とチェックされたビットを持つ がRolesList取得 されますUserRoleUserRole

私の場合、UserRoleブールではなく、次のとおりです

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

UserRoleただし、 fromboolを私が提案したものに変更することはできないため、次のことを試すことができます

@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 に答える