dazzling kumar dazzling kumar - 17 days ago 19
C# Question

There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key country

in binding dropdown in mvc i always get this error There is no ViewData item of type 'IEnumerable' country that has the key i dont know how to sort it

View

@Html.DropDownList("country",
(IEnumerable<SelectListItem>)ViewBag.countrydrop,"Select country")


Controller

List<Companyregister> coun = new List<Companyregister>();
coun = ds.getcountry();

List<SelectListItem> item8 = new List<SelectListItem>();
foreach( var c in coun )
{
item8.Add(new SelectListItem
{
Text = c.country,
Value = c.countryid.ToString()
});
}

ViewBag.countrydrop = item8;
return View();


i dont know where im wrong ,can anyone help me thanks in advance

Answer

In your action change ViewBag.countrydrop = item8 to ViewBag.country = item8;and in View write like this:

@Html.DropDownList("country",
                   (IEnumerable<SelectListItem>)ViewBag.country,
                   "Select country")

Actually when you write

@Html.DropDownList("country", (IEnumerable)ViewBag.country, "Select country")

or

Html.DropDownList("country","Select Country)

it looks in for IEnumerable<SelectListItem> in ViewBag with key country, you can also use this overload in this case:

@Html.DropDownList("country","Select country") // it will look for ViewBag.country and populates dropdown

See Working DEMO Example

Comments