0

複数の項目が選択された SelectList を作成するにはどうすればよいですか? SelectList を Razor ドロップダウンにバインドしたいのですが、その単一の選択項目の場合、このコードを使用しています

        List<SchoolApp.Models.Accounts.role> roles = accRepo.GetRoles();
        if (selected > 0)
        {
            ViewBag.RolesList = new SelectList(roles, "Id", "RoleName");
        }
        else
        {
            ViewBag.RolesList = new SelectList(roles, "Id", "RoleName", selected);
        }

そしてRazorでは、構文を使用しました

   <div class="editor-label">
        @Html.LabelFor(model => model.RoleId)
    </div>

    <div class="editor-field">         
        @Html.DropDownListFor(model => model.RoleId, (SelectList)ViewBag.RolesList, "Select", new { @class = "multiselect", @multiple = "multiple", @style = "width: 450px;height:300px" })
        @Html.ValidationMessageFor(model => model.RoleId)
    </div>

しかし、この SelectList で選択された複数の項目を設定するにはどうすればよいですか?私は試しました

  ViewBag.RolesList = new SelectList(roles, "Id", "RoleName",, new[] { 2, 3, 10, 11 });

しかし、複数のアイテムが選択済みに設定されていないようです。これどうやってするの?

4

1 に答える 1

4

で複数の項目を選択することはできません。SelectList

MultiSelectListを使用する必要があり、次のように使用します。

public MultiSelectList(
  IEnumerable items,
  string dataValueField,
  string dataTextField,
  IEnumerable selectedValues
)

このSOの回答を見ることもできます

于 2013-10-08T09:35:40.750 に答える