Индекс был вне диапазона.Должен быть неотрицательным и меньше размера коллекции Ошибка Как решить? - PullRequest
1 голос
/ 04 мая 2011

Привет, я получаю эту ошибку:

enter image description here

Мой код такой, в Reservation Controller :

private void loadCountry()
    {
        ReservationHelper reservationHelperObject = new ReservationHelper();

        ViewData["countryOut"] = new SelectList(reservationHelperObject.LoadCountry());
        ViewData["countryIn"] = new SelectList(reservationHelperObject.LoadCountry());

        CountryOut = ((MultiSelectList)(ViewData["CountryOut"])).ToList()[0].Text;
    }

Есть идеи?

Продолжение кода:

private void loadDefaultvalues()
    {
        List<string> emptyList = new List<string>();
        ViewData["locationIn"] = new SelectList(emptyList);
        ViewData["locationOut"] = new SelectList(emptyList);
        ViewData["RateProgram"] = new SelectList(emptyList);
        ViewData["Currency"] = new SelectList(emptyList);
        ViewData["VehicleClass"] = new SelectList(emptyList);
        ViewData["ReservationStatusDropDownList"] = new SelectList(emptyList);
        ViewData["Miles"] = new SelectList(emptyList);
        ViewData["currencyDropDownList"] = new SelectList(emptyList);
        ViewData["ReservationStatus"] = new SelectList(emptyList);
        ViewData["vehicleClassDropDownList"] = new SelectList(emptyList);
        ViewData["rateProgramDropDownList"] = new SelectList(emptyList);
        ViewData["parentOutDropDownList"] = new SelectList(emptyList);
        ViewData["parentInDropDownList"] = new SelectList(emptyList);
        ViewData["zoneOutDropDownList"] = new SelectList(emptyList);
        ViewData["zoneInDropDownList"] = new SelectList(emptyList);
        ViewData["locationOutDropDownList"] = new SelectList(emptyList);
        ViewData["locationInDropDownList"] = new SelectList(emptyList);
        ViewData["authorizationDropDownList"] = new SelectList(emptyList);
        ViewData["specialServiceDropDownList"] = new SelectList(emptyList);

        ViewData["RentalStatus"] = new SelectList(emptyList);
        ViewData["Status"] = new SelectList(emptyList);
        ViewData["Fop"] = new SelectList(emptyList);
        ViewData["CustomerType"] = new SelectList(emptyList);

        this.loadRentaStatus();
        this.loadStatus();
        this.loadFop();
        this.loadCustomerTypes();
        this.loadCountry();
        this.loadReservationStatuses();
        //this.loadMilesPercentage()
        this.loadSpecialService();
        this.loadRAType();
        this.loadAirline();
        this.loadTerminal();
        this.loadParentCode();
        this.loadZoneCode();
        this.loadAuthorizationType();
    }

Спасибо

1 Ответ

1 голос
/ 04 мая 2011

Этот код оценивает пустой список:

((MultiSelectList)(ViewData["CountryOut"])).ToList()

Как это исправить?Лучший способ - сделать что-то вроде следующего:

private void loadCountry()
{
    ReservationHelper reservationHelperObject = new ReservationHelper();

    ViewData["countryOut"] = new SelectList(reservationHelperObject.LoadCountry());
    ViewData["countryIn"] = new SelectList(reservationHelperObject.LoadCountry());

    var list = ((MultiSelectList)(ViewData["CountryOut"])).ToList();
    if (list.Count > 0) {
        CountryOut = list[0].Text;
    } else {
        // do something sensible when you have no data
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...