ListBox для ArgumentNullException Имя параметра: source

Настройка:

Я скаффолдировал контроллер с помощью MvcScaffolding.

Для a свойство, Model.IdCurrencyFrom, каркас создал Html.DropDownListFor:

@Html.DropDownListFor(model => model.IdCurrencyFrom, 
    ((IEnumerable<FlatAdmin.Domain.Entities.Currency>)ViewBag.AllCurrencies).Select(option => new SelectListItem {
        Text = (option == null ? "None" : option.CurrencyName), 
        Value = option.CurrencyId.ToString(),
        Selected = (Model != null) && (option.CurrencyId == Model.IdCurrencyFrom)
    }), "Choose...")

Это отлично работает как с новыми записями, так и с редактированием существующих.

Проблема:

Есть только 3 валюты, AR $, US $ и GB £. Итак, вместо раскрывающегося списка мне нужен ListBox.

Итак, я изменил приведенное выше на:

@Html.ListBoxFor(model => model.IdCurrencyFrom, 
    ((IEnumerable<FlatAdmin.Domain.Entities.Currency>)ViewBag.AllCurrencies).Select(option => new SelectListItem {
        Text = (option == null ? "None" : option.CurrencyName), 
        Value = option.CurrencyId.ToString(),
        Selected = (Model != null) && (option.CurrencyId == Model.IdCurrencyFrom)
    }))

Теперь я получаю ArgumentNullException, имя параметра: источник, но только при редактировании существующей записи. Создавая новые записи, это работает нормально.

Вопросы:

Что происходит?!

Ничего не изменилось. Переключился обратно на DropDownListFor, и все работает нормально. Переключение на ListBox (в отличие от ListBoxFor), и я получаю ошибка.

Модель не нулевая (как я уже сказал, она отлично работает с DropDownListFor) ... и у меня закончились идеи.

7
задан tereško 19 October 2012 в 10:29
поделиться