У меня в приложении ASP.NET MVC есть что-то вроде следующего:
IEnumerable<string> list = GetTheValues();
var selectList = new SelectList(list, "SelectedValue");
И даже несмотря на то, что выбранное значение определено, оно не выбирается в представлении. У меня такое чувство, что мне здесь чего-то не хватает, так что если кто-нибудь может избавить меня от моих страданий!
Я знаю, что могу использовать раздражающий тип для предоставления ключа и значения, но я бы предпочел не добавлять дополнительный код, если бы мне не пришлось.
Обновлено: эта проблема была исправлена ASP.NET MVC RTM.





Попробуйте вместо этого:
IDictionary<string,string> list = GetTheValues();
var selectList = new SelectList(list, "Key", "Value", "SelectedValue");
SelectList (по крайней мере, в Preview 5) недостаточно умен, чтобы увидеть, что элементы IEnumerable являются типом значения, и поэтому он должен использовать этот элемент как для значения, так и для текста. Вместо этого он устанавливает значение каждого элемента в «null» или что-то в этом роде. Поэтому выбранное значение не действует.
Взгляните на это: ASP.NET MVC SelectList selectedValue Попался
Это лучшее объяснение происходящего.
К вашему сведению, ссылка мертва; похоже, срок действия домена истек.
Совершенно не отвечает на его вопрос
Если вы просто пытаетесь сопоставить IEnumerable<string> с SelectList, вы можете сделать это встроенным образом следующим образом:
new SelectList(MyIEnumerablesStrings.Select(x=>new KeyValuePair<string,string>(x,x)), "Key", "Value");
Вместо .Select (...) вы можете .ToDictionary (...)
Попробуй это
ViewBag.Items = list.Select(x => new SelectListItem()
{
Text = x.ToString()
});
Дайте ответ с пояснением
См. Мои руководства по DDL asp.net/mvc/tutorials/javascript/… и blogs.msdn.com/b/rickandy/archive/2012/01/09/…