按字母顺序排序MVC中的SelectList

Myz*_*fer 13 c# asp.net-mvc jquery visual-studio-2010 asp.net-mvc-2

类似的例子

问题是我的选择列表中可能有数据(加上它的格式类似于[Ford IV 200 xyx]),我想要退出(通过在第3列中仅显示位值为true的记录,这也是我需要的东西要弄清楚该怎么办),最大的问题是,如果用户加上说另一个福特现在一直显示在下拉的底部,它看起来会非常混乱,甚至可能被忽视所以任何想法?

ps添加了jquery到标签,以防这是一个可能的解决方案,因为我能够在这个项目中使用它.

编辑 - 对于第3列位值过滤器,这里是解决方案

Dar*_*rov 21

您可以使用OrderBy扩展方法:

<%: Html.DropDownListFor(
    x => x.ModelId, 
    new SelectList(Model.VehicleModels.OrderBy(x => x.Name), "Id", "Name"), 
    "-- Select a model --"
) %>
Run Code Online (Sandbox Code Playgroud)


Myz*_*fer 11

感谢Darin我能够提出他稍微修改过的解决方案,而这导致我在VM中解决这个问题,所以

List<Reason> reasonList = _db.Reasons.OrderBy(m=>m.Description).ToList();
        ReasonList = new SelectList(reasonList, "Id", "Description");
Run Code Online (Sandbox Code Playgroud)