Следующий код «работает», но конечные результаты не то, что я ожидал. Я получаю dropdownlist
со всеми странами, как и ожидалось; по умолчанию Соединенные Штаты находятся в самой верхней части списка. Но Соединенные Штаты по-прежнему остаются доступными для выбора, если вы прокрутите список вниз, теперь у меня есть две записи «Соединенные Штаты» ...Попытка понять DropDownListFor, выбор по умолчанию отображается дважды?
Также стоит отметить, что по моей проверке выбор по умолчанию «Соединенные Штаты» считается недействительным, то есть он показывает мне сообщение для подтверждения «выберите страну». Если я затем выберем запись «Соединенные Штаты», расположенную дальше по списку, сообщение подтверждения исчезнет.
Почему это происходит? Я понимаю это неправильно?
VIEW МОДЕЛЬ
public class ProfileViewModel
{
public class CountriesDropdown
{
public string defaultSelection { get; set; }
public IEnumerable<SelectListItem> dropdownViewModel { get; set; }
}
public CountriesDropdown countriesDropdownViewModel { get; set; }
[Required]
[DataType(DataType.Text)]
[StringLength(100)]
[Display(Name = "Country of Residence: ")]
public string CountryResidence { get; set; }
}
VIEW
@Html.DropDownListFor(p => p.CountryResidence, Model.countriesDropdownViewModel.dropdownViewModel, Model.countriesDropdownViewModel.defaultSelection, new { style = "max-width: 215px;", id = "cbCountry", @class = "validate[required]" })
CONTROLLER
private ProfileViewModel PopulateAllDropdown(ProfileViewModel model)
{
model.countriesDropdownViewModel = new ProfileViewModel.CountriesDropdown();
model.countriesDropdownViewModel.dropdownViewModel = _DBCall.GetCountriesDropdownListPopulated();
model.countriesDropdownViewModel.defaultSelection = "United States";
return model;
}
Конечно, он будет показывать два раза, когда он всплывает из базы данных, а второй - в тексте по умолчанию, который в большинстве случаев выбирает один или выбирает страну. –
cab вы показываете '' Определение GetCountriesDropdownListPopulated() '', которое необходимо установить default выбрал один из своих –
Спасибо, Эхса Саджад, прочитав ваш комментарий, я смог его исправить. Я переместил выделение по умолчанию в код 'GetCountriesDropdownListPopulated() и отлично работает. Почему бы не опубликовать его как ответ, чтобы я мог его принять? – Dayan