我正在为语言生成一个下拉列表。我想将该列表的特定项目设为 selected
。这是查看页面代码:
@{var languageList = new List<SelectListItem>();
var cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
foreach (var culture in cultures)
{
if(culture.NativeName != "Invariant Language (Invariant Country)")
{
languageList.Add(new SelectListItem {
Text = (culture.EnglishName != culture.NativeName) ?
culture.EnglishName + " - " + culture.NativeName :
culture.EnglishName,
Value = culture.EnglishName.Contains('(') ?
culture.EnglishName.Split('(')[0].ToString().Trim() :
culture.EnglishName
});
}
}
languageList.OrderBy(x => x.Value);
}
现在,如果我这样调用该列表:
@Html.DropDownListFor(m => m.Language, languageList, "English", new { @class = "form-control" })
那么它将不会选择 English
值。它将简单地创建一个新文本 English
,值为 null
并将其设置到列表的顶部。当我们想要使用类似 --Select Item--
的东西时,这很好。但我想选择值为 English
且文本为 English (United States)
的特定项目。我该怎么做?
最佳答案
languageList.Add(new SelectListItem
{
Text = (culture.EnglishName != culture.NativeName) ?
culture.EnglishName + " - " + culture.NativeName : culture.EnglishName,
Value = culture.EnglishName.Contains('(') ?culture.EnglishName.Split('(')0].ToString().Trim() : culture.EnglishName,
Selected = (culture.EnglishName == "English (United States)") ? true : false
});
您也可以使用 derloopkat 的解决方案。
关于c# - DropDownListFor 选择一个项目并使其被选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51306051/