Populating ASP.NET MVC DropDownList

Viewed 70208

OK, I've been Googling for hours and trying everything and can't get anything to work. I am learning MVC using Sharp Architecture and have generated some basic forms for creating Client objects. I want to fill the state drop down list with a list of US states and let the user pick from that list. I am able to populate the list and get the value back (to save the client) but when I go to edit the client, the client's current state is not selected. I have set the selected value in the SelectList:

<li>
    <label for="Client_StateProvince">StateProvince:</label>
    <div>
        <%= Html.DropDownListFor(c=>c.Client.StateProvince, new SelectList(Model.StateProvinces, "id", "Name", Model.Client.StateProvince), "-- Select State --")%>
    </div>
    <%= Html.ValidationMessage("Client.StateProvince")%>
</li>

This does not seem to be good enough. What am I missing?

7 Answers

Worked perfectly for me thanx! I used it to set a parent relation on a subcategory:

<%= Html.DropDownListFor(
 model => model.Category.ParentId,
 new SelectList(Model.Categories,
 "CategoryId",
 "Name",
  Model.Categories.Where(x => x.CategoryId == Model.Category.ParentId).Single()))%>

Jeroen

Related