Jova
Jova

Reputation: 153

Problem with ASP.NET MVC DropDownList not displaying selected value

I have an aspx page which allows me to edit articles. Among things I can edit is which category the article belongs to. The category is chosen through a DropDownList as shown here,

<%= Html.DropDownList("categoryID", (IEnumerable<SelectListItem>)ViewData["CategoryID"], new { @class = "textbox" }) %>

However, the articles category isn't selected when I go to that page. The ViewData I use for the DropDownList looks like this,

ViewData["CategoryID"] = new SelectList(categories, "CategoryID", "Title", article.CategoryID);

Which should select the article.CategoryID as it's selected value. Have I done this wrong?

Upvotes: 2

Views: 1439

Answers (2)

Sofox
Sofox

Reputation: 5308

The best I could suggest is that you ensure your "Category" class has a property called "CategoryID" and is not just "ID". From what you've given us that's the best guess I can make as to the problem.

If it is just "ID", then your function will need to go:

ViewData["CategoryID"] = new SelectList(categories, "ID", "Title", article.CategoryID);

Upvotes: 0

Tomas Aschan
Tomas Aschan

Reputation: 60674

You're assigning the ViewData property a SelectList, but casting it to IEnumerable<SelectListItem> - try typing directly to SelectList instead:

<%= Html.DropDownList("categoryId", (SelectList)ViewData["CategoryID"], new { @class = "textbox" }) %>

Upvotes: 1

Related Questions