使用多个 SelectList 填充 MVC Dropdownlist

Populate MVC Dropdownlist with multiple SelectList

我有两个不同的 SelectList(一个用于城市,一个用于州)。我必须将这两个 SelectList 填充到一个下拉列表中,并在城市和州之间使用分隔符。 如何使用多个 SelectList 填充 MVC Dropdownlist?

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

与其尝试将 2 个选择列表连接在一起,不如在源代码中将它们组合起来?您没有提供太多信息,但是假设您正在使用LINQ,并且假设您在城市之间有数据库关系和国家...

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