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

在数组中设置选择列表值的正确方法?

  •  0
  • BVernon  · 技术社区  · 3 年前

    我见过的大多数关于如何使用 DropDownListFor 展示一个带有 IEnumerable List 属于 SelectListItem 是的,您可以设置 Selected 属性,该属性用于最初要显示的项目。

    对于一系列下拉列表,正确的方法是什么?我想我可以做一个 IEnumerable<IEnumerable<SelectList>> 所以每一个下拉列表都有它的功能 IEnumerable<SelectList>> 选择适当的值,但这似乎并不正确。

    我认为这对公司来说很有意义 下拉列表 方法设置一个重载,允许您设置默认值。目前我能想到的最佳解决方案是,在调用之前,只需为适当的项设置默认值(并清除所有其他项的选定值) 下拉列表 .

    但肯定有更合适的方法吗?或者 下拉列表 只是不适合这份工作,直接html会更容易吗?

    1 回复  |  直到 3 年前
        1
  •  1
  •   Serge    3 年前

    而不是我通常使用的DropDownlist

    <select class="form-control" id="itemId" asp-for="@Model.ItemId" 
    asp-items="@Model.Items"></select>
    

    其中项目=列表<选择ListItem>。它会自动从选择列表的值中选择ItemId,并显示正确的文本。

        2
  •  0
  •   BVernon    3 年前

    最后,我在视图的正上方添加了一行代码 DropDownListFor 语句更改所选项目,如下所示:

    Model.ExpenseCategories.ForEach(cat => cat.Selected = cat.Value == item.CategoryName);

    似乎应该有更好的方法,但这是一个非常简单的解决方案。在接受我自己的答案之前,我会稍等片刻,以防其他人有更好的方法。