I have a view which allows editing of multiple address items concurrently. Binding of the text box works fine however the drop down list does not recognize the selected value.
My ViewModels are:
public class AddressesViewModel
{
    public List<AddressViewModel> Addresses { get; set; }
}
public class AddressViewModel
{
    public string Street { get; set; }
    public string StateSelected { get; set; }
    public IEnumerable<SelectListItem> States { get; set; }
    public AddressViewModel()
    {
        this.States = new List<SelectListItem> { 
            new SelectListItem(),
            new SelectListItem { Text = "New Jersey", Value = "NJ"}, 
            new SelectListItem { Text = "New York", Value = "NY"}, 
            new SelectListItem { Text = "Pennsylvania", Value = "PA" },
            new SelectListItem { Text = "Rhode Island", Value = "RI" }
        };
    }
}
my controller action is:
public ActionResult Index()
{
    var addressesViewModel = new AddressesViewModel();
    addressesViewModel.Addresses = new List<AddressViewModel>() { 
        new AddressViewModel{
            Street = "some road", 
            StateSelected = "PA"
        },
        new AddressViewModel{
            Street = "some other road", 
            StateSelected = "NJ"
        }
   };
   return View(addressesViewModel);
}
and my view is:
@model HelloWorld.Models.AddressesViewModel
@for (int i = 0; i < Model.Addresses.Count(); i++)
{
    <div class="editor-label">
        @Html.LabelFor(modelItem => Model.Addresses[i].Street)
    </div>
    <div class="editor-field">
        @Html.EditorFor(modelItem => Model.Addresses[i].Street)
    </div>
    <div class="editor-label">
        @Html.LabelFor(modelItem => Model.Addresses[i].StateSelected)
    </div>
    <div class="editor-field">
        @Html.DropDownListFor(modelItem => Model.Addresses[i].StateSelected, Model.Addresses[i].States)
    </div>
}
I tested the view using a single item (bound to AddressViewModel) and it worked fine.