gpt4 book ai didi

c# - 如何将枚举的值放入 SelectList

转载 作者:IT王子 更新时间:2023-10-29 03:43:14 26 4
gpt4 key购买 nike

假设我有一个这样的枚举(仅作为示例):

public enum Direction{
Horizontal = 0,
Vertical = 1,
Diagonal = 2
}

鉴于枚举的内容将来可能会发生变化,我如何编写例程将这些值放入 System.Web.Mvc.SelectList 中?我想将每个枚举名称作为选项文本,并将其值作为值文本,如下所示:

<select>
<option value="0">Horizontal</option>
<option value="1">Vertical</option>
<option value="2">Diagonal</option>
</select>

这是迄今为止我能想到的最好的:

 public static SelectList GetDirectionSelectList()
{
Array values = Enum.GetValues(typeof(Direction));
List<ListItem> items = new List<ListItem>(values.Length);

foreach (var i in values)
{
items.Add(new ListItem
{
Text = Enum.GetName(typeof(Direction), i),
Value = i.ToString()
});
}

return new SelectList(items);
}

然而,这总是将选项文本呈现为“System.Web.Mvc.ListItem”。通过此调试还向我展示了 Enum.GetValues() 正在返回“水平、垂直”等,而不是我预期的 0、1,这让我想知道 Enum.GetName() 和 Enum 之间有什么区别。获取值()。

最佳答案

自从我不得不这样做以来已经有一段时间了,但我认为这应该可行。

var directions = from Direction d in Enum.GetValues(typeof(Direction))
select new { ID = (int)d, Name = d.ToString() };
return new SelectList(directions , "ID", "Name", someSelectedValue);

关于c# - 如何将枚举的值放入 SelectList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1110070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com