I have a DropDownListFor
in my View:
@model UserProfileViewModel
@Html.DropDownListFor(x => x.PreferredLangID,
new SelectList(Model.PreferredLanguages,
"LanguageID",
"DisplayName",
Model.PreferredLang))
Controller action:
public ActionResult EditProfile()
{
List<Language> languages = Code.LanguageLogic.GetAllLanguages();
UserProfile profile = Code.ProfileLogic.GetUserProfile();
var viewModel = new UserProfileViewModel
{
UserID = profile.UserID,
PreferredLanguages = languages,
PreferredLang = profile.PreferredLang
};
return View(viewModel);
}
I thought, that if I gave Model.PreferredLang
as 4th paramater in SelectList
's contructor, that element will be selected in dropdown, when page loads. But selected element is always the first one in list.
The Model:
public class UserProfileViewModel
{
public Guid UserID { get; set; }
public Language PreferredLang { get; set; }
public int PreferredLangID { get; set; }
public IEnumerable<Language> PreferredLanguages { get; set; }
//...
}
I don't know the details of the type, so I can't say for sure, but I'm guessing you might need:
@Html.DropDownListFor(x => x.PreferredLangID,
new SelectList(Model.PreferredLanguages,
"LanguageID",
"DisplayName",
Model.PreferredLang.PreferredLangId))
ETA:
Or, with your addition:
@Html.DropDownListFor(x => x.PreferredLangID,
new SelectList(Model.PreferredLanguages,
"LanguageID",
"DisplayName",
Model.PreferredLangId))
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments