MVC4:如何对此选择列表/下拉列表进行排序

时间:2013-05-27 05:43:03

标签: asp.net-mvc html-select selectlist

我正在使用MVC4。

我有以下下拉列表/选择列表:

@Html.DropDownList("EmployerID", String.Empty)

ViewBag.EmployerID = new SelectList(db.Employers, "EmployerID", "Name", contact.EmployerID);

我希望这个下拉列表/选择列表按“名称”排序。我该怎么办?

非常感谢! :)

2 个答案:

答案 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);