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.Cate开发者_运维百科goryID as it's selected value. Have I done this wrong?
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" }) %>
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);
精彩评论