我正在使用MVC4。
我有以下下拉列表/选择列表:
@Html.DropDownList("EmployerID", String.Empty)
ViewBag.EmployerID = new SelectList(db.Employers, "EmployerID", "Name", contact.EmployerID);
我希望这个下拉列表/选择列表按“名称”排序。我该怎么办?
非常感谢! :)
答案 0 :(得分:7)
将OrderBy
添加到您的db.Employers
@Html.DropDownList("EmployerID", String.Empty)
ViewBag.EmployerID = new SelectList(db.Employers.OrderBy(x => x.Name),
"EmployerID", "Name", contact.EmployerID);
答案 1 :(得分:3)
我想我会分享我提出的解决方案,以防其他人遇到同样的问题。 我正在使用泛型,因此我无法在创建SelectList之前订购我的源代码。 但是,您可以订购生成的SelectList。我仍然希望我的方法返回一个SelectList,所以我调用SelectList() 第二次使用有序的SelectList作为源。 :)
var orderedSelectList = new SelectList(source, "YourValueFieldName", "YourTextFieldName", selectedCode).OrderBy(i => i.Text);
return new SelectList(orderedSelectList, "Value", "Text", selectedCode);