Проблема с ASP.Net MVC SelectLIst и List

Я расширяю Enum и, учитывая следующий код, selectListItems – это общий список SelectListItems, который имеет все правильные значения для моего Enum.

Первый цикл foreach работает отлично. Однако, когда я создаю фактический SelectList и selectListItems в selectListItems , все значения теряются. Как я могу сохранить эти ценности без изменений?

 foreach (SelectListItem item in selectListItems) { string tex = item.Text; string val = item.Value; string sel = item.Selected.ToString(); } SelectList selectList = new SelectList(selectListItems); foreach (SelectListItem slid in selectList) { string tex = slid.Text; string val = slid.Value; string sel = slid.Selected.ToString(); } 

    Вам нужно изменить строку, в которой вы ее создадите, чтобы указать, где искать значения. В вашем случае это будет:

     SelectList selectList = new SelectList(selectListItems, "Value", "Text"); 

    Однако это не будет переносить выбранный элемент. В этом случае вам понадобится выяснить, какой элемент должен быть выбранным и передать его значение через четвертый параметр.

    Вот пример:

     List items = new List(); items.Add(new SelectListItem() { Text = "Test1", Value = "1", Selected = false }); items.Add(new SelectListItem() { Text = "Test8", Value = "8", Selected = true }); items.Add(new SelectListItem() { Text = "Test3", Value = "3", Selected = false }); items.Add(new SelectListItem() { Text = "Test5", Value = "5", Selected = false }); SelectList sl = new SelectList(items, "Value", "Text", "8"); 

    Вы также можете проверить этот stream SO, который может быть полезен.

    Редактировать: просто видел ваш комментарий, и он не работает, потому что он недостаточно умен, чтобы знать, как искать полях « Text и Value по умолчанию. Вы можете передать ему тип объектов, и он дает вам возможность привязки к нему, определяя, какие свойства должны отображаться в свойствах Text и Value .