ASP.NET MVC DropDownListFor не поддерживает SelectListItem.Selected

Я использую DropDownListFor для отображения раскрывающегося списка в представлении. Каким-то образом отображаемый список не выбирает SelectListItem с Selected , установленным на true .

В действии контроллера:

var selectList = sortedEntries.Select(entry => new SelectListItem
                            {
                                Selected = entry.Value.Equals(selectedValue),
                                Text = entry.Value,
                                Value = entry.Id
                            });

return View(new DropDownListModel
            {
                ListId = id,
                SelectList = selectList,
                OptionLabel = "Click to Select"
            });

В представлении:

<%= Html.DropDownListFor(m => m.ListId, 
    Model.SelectList, 
    Model.OptionLabel, 
    new {@class="someClass"}) %>

Я пробовал следующее:

  1. убедитесь, что есть один и только один элемент с Selected , установленным на true .
  2. удалите аргумент метки параметра.
  3. удалите объект атрибута HTML.
  4. используйте SelectList в DropDownListFor :

   Html.DropDownListFor(m => m.ListId, 
        new SelectList(Model.SelectList, "Value", "Text", 
             new List<SelectListItem>(Model.SelectList).Find(s => s.Selected)), 
        new {@class="someClass"})

Есть предложения относительно того, что пошло не так?

EDIT :

дополнительная информация :

  • Это дочернее действие, вызываемое другим представлением с помощью HTML.RenderAction
7
задан William Niu 14 July 2011 в 07:21
поделиться