Setting default value of a Html.DropDownList()
asp.net-mvc, c#, drop-down-menu, html-helper, razor
Solution
When constructing your SelectListItem classes, set the `Selected` property to true for the item you want initially selected.
Problem
When it posts back I get the following error: The ViewData item that has the key 'ClosingDateDay' is of type 'System.Int32' but must be of type 'IEnumerable'. Any ideas? Here's my Controller: ``` CompetitionEditViewModel viewModel = new CompetitionEditViewModel { ClosingDate = competition.CloseDate, Description = competition.Description, DescriptionHeading = competition.DescriptionHeading, ImageAssetId = competition.ImageAssetId, IsActive = competition.IsActive, MainHeading = competition.MainHeading, TermsAndConditions = competition.TermsAndConditions, UrlSlug = competition.UrlSlug }; viewModel.ClosingDateMonthOptions = new List<SelectListItem>(); for (int i = 1; i <= 12; i++) { string monthName = new DateTime(2000, i, 1).ToString("MMMM"); ((List<SelectListItem>)viewModel.ClosingDateMonthOptions).Add(new SelectListItem { Text = monthName, Value = i.ToString() }); } viewModel.ClosingDateDayOptions = new List<SelectListItem>(); for (int i = 1; i <= 31; i++) { ((List<SelectListItem>)viewModel.ClosingDateDayOptions).Add(new SelectListItem { Text = i.ToString().PadLeft(2, '0'), Value = i.ToString() }); } viewModel.ClosingDateYearOptions = new List<SelectListItem>(); for (int i = DateTime.Now.Year; i <= DateTime.Now.Year + 3; i++) { ((List<SelectListItem>)viewModel.ClosingDateYearOptions).Add(new SelectListItem { Text = i.ToString(), Value = i.ToString() }); } ``` And heres my view: ``` @Html.Uber().LabelFor(x => x.ClosingDateDay, new { @class = "access" }) @Html.DropDownListFor(x => x.ClosingDateDay, Model.ClosingDateDayOptions, Model.ClosingDateDay) @Html.Uber().LabelFor(x => x.ClosingDateMonth, new { @class = "access" }) @Html.DropDownListFor(x => x.ClosingDateMonth, Model.ClosingDateMonthOptions, Model.ClosingDateMonth) @Html.Uber().LabelFor(x => x.ClosingDateYear, new { @class = "access" }) @Html.DropDownListFor(x => x.ClosingDateYear, Model.ClosingDateYearOptions, Model.ClosingDateYear) ```