指数超出范围。必须是非负且小于集合的大小错误如何解决?

时间:2011-05-04 03:55:02

标签: asp.net-mvc-2 controller

您好我收到此错误:

enter image description here

我的代码是这样的,在 Reservationcontroller

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 个答案:

答案 0 :(得分:1)

此代码正在评估一个空列表:

((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
    }
}