Выделение элемента в выпадающем списке (DropDownList) в ASP.NET MVC - CodeHelper

Выделение элемента в выпадающем списке (DropDownList) в ASP.NET MVC

1

Я использую методы Html.DropDownList и Html.DropDownListFor для генерации выпадающих списков. Оба метода принимают коллекцию элементов списка. Для каждого элемента можно указать, является ли он выделенным. При создании коллекции я явно указываю выделенный (Selected = true) option, но когда список отображается, то выделен всегда только первый элемент. В чем здесь проблема?

Новые ответы


1

Методы Html.DropDownList и Html.DropDownListFor использую имя свойства модели для определения выделенного элемента выпадающего списка. DropDownList принимает непосредственно строку имени свойства, а DropDownListFor — выражение, которое позволяет обратиться к свойству в строго-типизированной манере. Оба метода перекрывают значение выделенного элемента списка, определенное пользователем. То есть, даже если явно указано, какой элемент выделить, все равно будет выделен элемент, значение которого совпадает с переданным свойством модели. Если ни один элемент списка не соответствует свойству модели, то будет выделен первый пункт.

Если есть проблемы с отображением выделенного элемента можно попробавать следующее.

1) Если нужно жестко задавать свойство Selected вручную, то необходимо использовать метод Html.DropDownList, и в качестве первого параметра передавать строку, для которой нет поля в модели.

2) Если нужно, чтобы выделенным был элемент, соответствующий свойству модели, нужно чтобы значение Value объекта SelectListItem точно соответствовало текстовому значению свойства модели:

var item = new SelectListItem 
{
    Text = "Text",
    Value = someObjectOrEnum.ToString()
}

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.