0

VieBage アイテムを DropDown の選択リストとして作成したい 、これは私の ViewModel コンテンツです

 public List<SelectListItem> SelectedItemForRole { get; set; }

 public string SelectedValue { get; set; }




public static RegisterViewModel GetRole()
        {
            var model = new RegisterViewModel { SelectedItemForRole = new List<SelectListItem>() };
            model.SelectedItemForRole.Add(new SelectListItem() { Text = "Administrator", Value = "1" });
            model.SelectedItemForRole.Add(new SelectListItem() { Text = "Operator", Value = "2" });

            return model;
        }

これは私の行動内容です:

  ViewBag.RoleList = RegisterViewModel.GetRole();

私がViewで行ったことは次のようなものです:

 <div>
            @Html.LabelFor(register => register.Role)
            @Html.DropDownListFor(register => register.SelectedValue, new SelectList(ViewBag.RoleList, "Value", "Text"))
        </div>

しかし、うまくいきません!

4

2 に答える 2

1

ViewBag 値を SelectList としてキャストするだけです。だからあなたの場合:

@Html.DropDownListFor(register => register.SelectedValue, (SelectList)ViewBag.RoleList)

ただし、コードを見ると、ViewBag インスタンスは、選択リストを含む SelectedItemForRole という名前のプロパティを持つ RegisterViewModel タイプであることがわかります。それで、私はあなたが必要とするのはこれだと思います:

@Html.DropDownListFor(register => register.SelectedValue, ((RegisterViewModel)ViewBag.RoleList).SelectedItemForRole)

基本的に、ViewBag を RegisterViewModel にキャストしてから、SelectList に SelectedItemForRole を使用します。

于 2013-05-26T18:58:47.000 に答える
-1
CType(ViewBag.Especialidades, IEnumerable(Of SelectListItem))
于 2021-04-05T18:54:59.183 に答える