#c# #.net #razor #html-helper #html.dropdownlistfor
#c# #.net #razor #html-помощник #html.dropdownlistfor
Вопрос:
Я использую выпадающий список, заполненный из ViewBag. Имя модели и имена ViewBag разные, и я использую специальный идентификатор для сценария.
@foreach (var address in Model.CustomerAddresses){
<div id="div_@address.Id">
@Html.DropDownListFor(model => address.AddressType, ViewBag.AddressTypeList as IEnumerable<SelectListItem>, "Select a Type", new { @class = "form-control", id = "type_" @address.Id })
</div>
при повторном открытии модального параметра редактирования выбранное значение не выбирается в выпадающем списке. Пакет просмотра создается из перечисления.
—- Отредактировано ——
вот как создается viewbag,
SelectList addressTypes = new SelectList(Data.GetAdressType());
ViewBag.AddressTypeList = addressTypes;
функция,
List<string> type = Enum.GetNames(typeof(WebApp.Common.Utils.Meta.Constants.AddressType)).ToList();
type.Sort();
return type;
перечисление,
public enum AddressType
{
Permanent = 1,
Residence = 2,
Office = 3,
Other = 5
}
Заранее спасибо
Комментарии:
1. Можете ли вы опубликовать, как заполняется ViewBag?
2. @BviLLe_Kid Я отредактировал вопрос с помощью функций
3. Проверьте, является ли viewbag значением при повторном открытии модального.
4. @PraveenKumar.erakkingal все данные отображаются как ожидалось, но для выбранного атрибута не установлен необходимый параметр
5. @PankajaG SelectList имеет перегруженный метод
SelectList Constructor (IEnumerable, Object)
.. у вас уже есть IEnumerabe сData.GetAdressType()
.. теперь вам просто нужно поместить объект в качестве значения, которое вы хотите выбрать…SelectList addressTypes = new SelectList(Data.GetAdressType(), /*object here*/);
Ответ №1:
Вы пытались создать свой список вместо использования ключевого слова «as» и интерфейса IEnumerable, подобного этому?
(List<SelectListItem>)ViewBag.AddressTypeList
Или, может быть, используя другие способы, например, класс SelectList …