For whatever reason, my default value for my Html.DropDownListFor isn't working:
@Html.DropDownListFor(model => model.DomainList,
new SelectList(Model.DomainList, "DomainId", "Name", Model.SingleDomain.DomainId),
new { @class = "form-control" })
Any idea why?
UPDATE
With the answer below, I updated my code to the following:
@Html.DropDownListFor(model => model.SelectedDomain,
new SelectList(Model.DomainList, "DomainId", "Name", Model.SelectedDomain),
"Select a Domain",
new { @class = "form-control" })
Try this:
In your ViewModel, add an integer to store the selected domain id:
public int SelectedDomainId { get; set; }
Change your DropDownListFor to:
@Html.DropDownListFor(model => model.SelectedDomainId,
new SelectList(Model.DomainList, "DomainId", "Name", Model.SingleDomain.DomainId),
new { @class = "form-control" })
Now on your post-back the selected id will be posted in SelectedDomainId.
Or, you could add the single domain object to your VM (to indicate which one was selected):
public Domain SelectedDomain { get; set; }
And change your DropDownListFor to:
@Html.DropDownListFor(model => model.SelectedDomain,
new SelectList(Model.DomainList, "DomainId", "Name", Model.SingleDomain.DomainId),
new { @class = "form-control" })
I usually use the selected ID, but I think either should work
Here is another good example: