gpt4 book ai didi

c# - Html.EnumDropdownListFor 我可以按字母顺序排序吗?

转载 作者:太空狗 更新时间:2023-10-29 21:39:17 26 4
gpt4 key购买 nike

我喜欢 MVC 5.1 中的新 Html.EnumDropdownListFor,我发现我可以像这样在 Display 属性中指定值的顺序:

    public enum AssignableDataFieldEnum
{
[Display(Name = "Code Value", Order=1)]
CodeValue = 1,
[Display(Name = "Final Digit", Order=2)]
FinalDigit = 2,
[Display(Name = "Group Number", Order=3)]
GroupNumber = 3,
[Display(Name = "Sequence Number", Order=4)]
SequenceNumber = 4
}

这个解决方案在本地化方面似乎目光短浅。有没有办法自动让 MVC 为我按字母顺序排列 DDL?

最佳答案

我想出了一个解决方案,它获取枚举值,对它们进行排序,然后调用 HtmlHelper.DropDownListFor()

public static MvcHtmlString EnumSortedDropDownListFor<TModel, TEnum>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TEnum>> expression, string optionLabel = null, IDictionary<string, object> htmlAttributes = null) {
ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
var selectList = EnumHelper.GetSelectList(metadata.ModelType).OrderBy(i => i.Text).ToList();
if (!String.IsNullOrEmpty(optionLabel) && selectList.Count != 0 && String.IsNullOrEmpty(selectList[0].Text)) {
selectList[0].Text = optionLabel;
optionLabel = null;
}

return htmlHelper.DropDownListFor(expression, selectList, optionLabel, htmlAttributes);
}

关于c# - Html.EnumDropdownListFor 我可以按字母顺序排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24127458/

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