R – Problem with ASP.NET MVC DropDownList not displaying selected value

asp.netasp.net-mvcdrop-down-menu

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?

Best Answer

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" }) %>