Я знаю, что об этом уже спрашивали несколько раз, но существующие решения выглядят скорее как хаки, а не как правильный шаблон.
У меня есть простой выпадающий список. Я пытаюсь заполнить его данными и предварительно выбрать элемент. Я преуспеваю в «заполнить его частью данных», но мне не удается предварительно выбрать предпочтительный элемент.
Я использую ASP.NET MVC 3 RC2.
Важные биты кода:
{
// Bunch of code
CategoryOptions = new SelectList(categories, "Id", "Slug", article.Category.Id);
}
Теперь ... CategoryOptions передается помощнику Html следующим образом:
@Html.DropDownListFor(a => a.Category, Model.CategoryOptions)
Я просмотрел значения, передаваемые помощнику, и подтвердил, что для одного из элементов выбрано значение true:
Однако, это не отражается в Html, генерируемом помощником. Ни один из тегов ... не имеет атрибута selected = "selected".
Я использовал Reflector, чтобы немного изучить код, и эта строка (SelectExtensions.SelectInternal) выглядит рискованно:
item.Selected = (item.Value != null) ? set.Contains(item.Value) : set.Contains(item.Text);
Я что-то здесь не так делаю? Или здесь виноват фреймворк (ASP.NET MVC 3 RC2).