I'm learning ASP.NET MVC. I had a small problem when dealing with dropdownlist.
This is what I did in controller
List<Int32> myList = new List<Int32>();
var a = (from m in datacontext.services
select m.ServiceID);
myList = a.ToList();
ViewData["ServiceID"] = new SelectList((IEnumerable<SelectListItem>)
a.ToList(), "ServiceID", "ServiceID");
In the view
@Html.DropDownListFor(model => model.ServiceID, ViewData["ServiceID"] as SelectList)
This results in an error
Unable to cast object of type 'System.Collections.Generic.List
1[System.Int32]' to type 'System.Collections.Generic.IEnumerable
1[System.Web.Mvc.SelectListItem]'."
How can this be resolved?
What's the best way to deal with populating dropdownlist with a query?
There is an error in the cast.
To fix you can do this:
var a = datacontext.services.Select(arg => new { ServiceID = arg.ServiceID }).ToList();
ViewData["ServiceID"] = new SelectList(a, "ServiceID", "ServiceID");
or this:
var a = datacontext.services.Select(arg => arg.ServiceID).ToList();
ViewData["ServiceID"] = new SelectList(a);
In your code a
is the list of integers. It cannot be cast into the list of SelectListItem
.
Side note:
myList
variable is not used in your code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With