代码之家  ›  专栏  ›  技术社区  ›  LogicalDesk

为mvc中的某个项绑定具有逗号分隔值的下拉列表

  •  1
  • LogicalDesk  · 技术社区  · 7 年前

    我想用模型数据绑定一个html下拉列表,以便在 账户=SBEN或SPPY或SPLF或SWOL

    <div class="border col-md-2">
        @Html.DropDownListFor(model => model.Account, new SelectList(new List<SelectListItem>
            { new SelectListItem { Text = "PWD-SUR", Value = "SBEN, SPPY, SPLF, SWOL"},
              new SelectListItem { Text = "LOAN", Value = "LNPR"},
              new SelectListItem { Text = "LN PYMT", Value = "LNIN"},
              new SelectListItem { Text = "PREM", Value = "PREM"}
            }, "Value", "Text"),"----", new {@id="ddlAccount", @class = "form-control" })
    </div>
    

    我有没有办法达到同样的效果?

    注意:模型一次只包含一种帐户类型。

    2 回复  |  直到 7 年前
        1
  •  1
  •   LogicalDesk    7 年前

    如果我像这样修改代码,效果会很好-

    <div class="border col-md-2">
                                @Html.DropDownList("AccountType", new SelectList(new List<SelectListItem>
            { new SelectListItem { Text = "PWD-SUR", Value = "SBEN, SPPY, SPLF, SWOL" },
              new SelectListItem { Text = "LOAN", Value = "LNPR"},
              new SelectListItem { Text = "LN PYMT", Value = "LNIN"},
              new SelectListItem { Text = "PREM", Value = "PREM"}
            }, "Value", "Text", (Model.Account == "SBEN" || Model.Account == "SPPY" || Model.Account == "SPLF" || Model.Account == "SWOL") ? "SBEN, SPPY, SPLF, SWOL" : Model.Account), new { @id = "ddlAccount", @class = "form-control" })
                            </div>
    
        2
  •  0
  •   Milad Rashidi hady khann    7 年前

    根据这个 article 当您使用 SelectList ,则应指定 SelectListItem 要设置为选中的值属性。

    所以你只需要这样尝试:

    <div class="border col-md-2">
        @Html.DropDownListFor(model => model.Account, new SelectList(new List<SelectListItem>
            { new SelectListItem { Text = "PWD-SUR", Value = "SBEN, SPPY, SPLF, SWOL"},
              new SelectListItem { Text = "LOAN", Value = "LNPR"},
              new SelectListItem { Text = "LN PYMT", Value = "LNIN"},
              new SelectListItem { Text = "PREM", Value = "PREM"}
            }, "Value", "Text", (Model.Account == "SBEN" || Model.Account == "SPPY" || Model.Account == "SPLF" || Model.Account == "SWOL") ? "SBEN, SPPY, SPLF, SWOL" : Model.Account), new {@id="ddlAccount", @class = "form-control" })
    </div>