Index was out of range. Must be non-negative and less than the size of the collection Error How to resolve?
Hi I am getting this error :
My code is like this, in the 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;
}
Any ideas ?
Continuation of code:
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["zon开发者_Python百科eOutDropDownList"] = 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();
}
Thanks
This code is evaluating to an empty list:
((MultiSelectList)(ViewData["CountryOut"])).ToList()
How to fix it? The best way is to do something like the following:
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
}
}
精彩评论