Я использую помощника для выпадающего списка на мой взгляд, как это:
@Html.DropDownListFor(m => m.BasePlayerForm.Position, Model.GetPositions())
У меня в модели есть функция для заполнения списка:
public IEnumerable<SelectListItem> GetPositions()
{
foreach (string positionValue in Enum.GetNames(typeof(PlayerPosition)))
{
var selectListItem = new SelectListItem();
selectListItem.Text = positionValue;
selectListItem.Value = ((int)Enum.Parse(typeof(PlayerPosition), positionValue)).ToString();
if (BasePlayerForm.Position.ToString() == positionValue)
selectListItem.Selected = true;
yield return selectListItem;
}
}
(Я знаю, что есть и более короткая версия для возврата элемента списка, но для целей отладки я нашел это более полезным.) Самое смешное, если я поставлю точку торможения на "selectListItem.Selected = true;" строка, отладчик попадает в него, но когда я рендерим представление, не выбрана ни одна опция. Я также использую другой dropdownlist для помощника в моем представлении таким же образом, чтобы заполнить раскрывающийся список, но этот получает выбранный элемент. Я действительно не знаю, в чем проблема с этим. Если кто-нибудь знает, пожалуйста, дайте мне знать, я был бы очень признателен =)