使用多个SelectList填充MVC下拉列表

时间:2015-09-04 13:47:39

标签: asp.net-mvc-3 razor

我有两个不同的SelectList(一个用于City,一个用于State)。我必须在单个下拉列表中填充这两个SelectList,并在Cities和States之间使用分隔符。 如何使用多个SelectList'来填充MVC下拉列表?

public SelectList Cities 
{ 
    get; 
    set; 
}
public SelectList State
{ 
    get; 
    set; 
}

1 个答案:

答案 0 :(得分:1)

不是试图将2个选择列表组合在一起,为什么不在源头上将它们组合在一起呢?您没有提供太多信息,但假设您正在使用LINQ,并且假设您在城市和州之间存在数据库关系... < / p>

// get the city & state data
var cities = (from c in GetAllCities()
           orderby c.Name
           orderby c.State.Name
           select new 
           {
               cityid = c.Id,
               cityname = c.Name,
               state = e.State.Name
           }).ToList();

// convert the data into a list of `SelectListItem`
var items = from cs in cities.AsEnumerable()
            select new SelectListItem
            {
                Value = cs.cityid.ToString(),
                Text = string.Format("{0} {1} ({2})", cs.cityname, cs.state)
           };
// create the selectlist
return new SelectList(items , "Value", "Text");