2013-05-27 31 views
4

我正在使用MVC4。MVC4:如何對此選擇列表/下拉列表進行排序

我有這個下拉列表如下/選擇列表的:

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

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

,我想這個下拉列表/選擇列表的由「姓名」進行排序。我該怎麼辦?

非常感謝! :)

回答

7

添加OrderBydb.Employers

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

ViewBag.EmployerID = new SelectList(db.Employers.OrderBy(x => x.Name), 
    "EmployerID", "Name", contact.EmployerID); 
+1

謝謝你的答案。但是,這並不起作用。選擇列表仍然按EmployerID排序。 – user2423801

+0

舊的線程,但如果這不適合你,也許你更新你的控制器的POST方法,而不是GET方法? –

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