【问题标题】:How do I bind multiple dropdownlists to a list of enums?如何将多个下拉列表绑定到枚举列表?
【发布时间】:2015-01-20 08:34:51
【问题描述】:

我有一个具有 List 类型属性“Countries”的模型。国家是一个枚举。该列表可以包含 0-5 个国家/地区。当我编辑这个模型时,我想为列表中的每个国家使用一个下拉列表。我希望能够使用 5 个下拉列表为该物业选择 0-5 个国家/地区。我该怎么做呢?对于具有单个枚举的属性,这有效:

@Html.DropDownListFor(model => model.Country, (IEnumerable<SelectListItem>)ViewBag.CountryList)

选择了正确的国家/地区。对于我的多国财产,这 工作:

@for (int i = 0; i < 5; i++)
{
  @Html.DropDownListFor(model => model.Countries[i], (IEnumerable<SelectListItem>)ViewBag.CountryList)
}

也就是说,我得到了我的下拉列表,但没有像示例中的单个国家/地区那样选择国家/地区。

在我的控制器中,我有:

ViewBag.CountryList = new SelectList(Enum.GetValues(typeof(Country)));

有什么建议吗?我不太擅长 MVC。

【问题讨论】:

  • 如果你的意思是当你第一次显示视图时每个下拉菜单只显示第一个选项(而不是选择模型属性定义的国家,那么你需要使用自定义EditorTemplate模型。这是在 for 循环中使用 DropDownListFor() 的已知错误。
  • 谢谢斯蒂芬!我该怎么做呢?
  • 您需要发布模型和 GET 方法(包括如何构建枚举的选择列表)。我怀疑您可以使用ListBoxFor() 更轻松地解决这个问题

标签: c# asp.net-mvc razor enums html.dropdownlistfor


【解决方案1】:

你可以在 MVC5 中使用它:

@Html.EnumDropDownListFor(m => m.Country)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多