Выбранное значение в раскрывающемся списке не работает с ViewBags

Я использую раскрывающийся список, заполняемый из ViewBag. Название модели и названия ViewBag различны, и я использую специальный идентификатор для сценария.

@foreach (var address in Model.CustomerAddresses){
 <div id="[email protected]">
   @Html.DropDownListFor(model => address.AddressType, ViewBag.AddressTypeList as IEnumerable<SelectListItem>, "Select a Type", new { @class = "form-control", id = "type_" + @address.Id })
 </div>

при повторном открытии модального окна для опции редактирования выбранное значение не выбирается в раскрывающемся списке. Пакет просмотра создается из перечисления.

---- Отредактировано -----

так создается область просмотра,

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
    }

заранее спасибо


person Pankaja Gamage    schedule 17.10.2016    source источник
comment
Можете ли вы опубликовать, как заполняется ViewBag?   -  person Grizzly    schedule 17.10.2016
comment
@BviLLe_Kid Я редактировал вопрос с функциями   -  person Pankaja Gamage    schedule 18.10.2016
comment
Проверьте, является ли viewbag как значение, когда вы повторно открыли модальное окно.   -  person PraveenKumar.erakkingal    schedule 18.10.2016
comment
@ PraveenKumar.erakkingal все данные отображаются должным образом, но для выбранного атрибута не установлена ​​необходимая опция   -  person Pankaja Gamage    schedule 18.10.2016
comment
@PankajaG SelectList имеет перегруженный метод SelectList Constructor (IEnumerable, Object) .. у вас уже есть IEnumerabe с Data.GetAdressType() .. теперь вам просто нужно указать объект в качестве значения, которое вы хотите выбрать ... SelectList addressTypes = new SelectList(Data.GetAdressType(), /*object here*/);   -  person Grizzly    schedule 18.10.2016
comment
@BviLLe_Kid, поскольку это ViewBags используются внутри цикла, не будет ли выбранный элемент одинаковым для всех значений?   -  person Pankaja Gamage    schedule 19.10.2016
comment
@PankajaG Можете опубликовать свой луп?   -  person Grizzly    schedule 19.10.2016
comment
@BviLLe_Kid foreach (адрес переменной в Model.CustomerAddresses) {это уже вопрос   -  person Pankaja Gamage    schedule 19.10.2016


Ответы (1)


Вы пытались преобразовать свой список вместо использования ключевого слова «as» и интерфейса IEnumerable, подобного этому?

(List<SelectListItem>)ViewBag.AddressTypeList

Или, может быть, другими способами, например классом SelectList ...

person Johnny Behague    schedule 17.10.2016