Если вы посмотрите на Intellisense для перегрузок конструктора SelectList, код SelectList (items) должен работать, но не работает. То, что он просто выполняет ToString () для элементов, насколько я могу судить, является ошибкой, которую Microsoft должна исправить. Ответы - все хорошие обходные пути. Кстати, если вы используете метод, предоставляющий «Текст» и «Значение», правильный ответ должен быть
SelectList selectList = new SelectList(items, "Value", "Text")
не
SelectList selectList = new SelectList(items, "Text", "Value")
По крайней мере, это согласуется с моими экспериментами в MVC 3.