При работе с раскрывающимися списками в моих моделях просмотра у меня обычно есть одно свойство, связанное со значением выбранного элемента списка, и у меня есть свойство, которое возвращает список элементов selectlist. Затем я использую Html.DropDownListFor (m => m.ValueProperty, Model.DropDownValues), чтобы отобразить раскрывающийся список.
Я полагаю, в вашем сценарии у вас нет значения, соответствующего значению выбранного элемента списка?
Редактировать: вот пример из одного из моих приложений ...
public class MyVM
{
public int MyObjectId { get; set; }
public List<SelectListItem> MyObjectList
{
get
{
List<SelectListItem> list = (from o in MyObjects select new SelectListItem
{ Value = o.ObjectId.ToString(), Text = o.ObjectName }).ToList();
list.Insert(0, new SelectListItem
{ Value = "0", Text = "[Select an object]" });
return list;
}
}
}
<%: Html.DropDownListFor(m => m.MyObjectId, Model.MyObjectList)%>
Возможно, вы заметили запрос LINQ, который заполняет список. В этом примере у меня есть список (MyObjects), который уже был заполнен AutoMapper. Вы можете просто вернуть статический список, если хотите.