c# - DropDownListFor 选择一个项目并使其被选中

标签 c# asp.net-mvc

我正在为语言生成一个下拉列表。我想将该列表的特定项目设为 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/

相关文章:

c# - Json解析日期时间格式

使用 Visual Studio 2008 的 2.0 中的 C# .NET 3.0/3.5 功能

c# - 以编程方式启用 IIS 角色和功能

c# - RestSharp 是否覆盖手动设置的内容类型?

c# - ASP.NET ViewModel 替代方案

javascript - 日期在 IE 浏览器中显示无效,但适用于 chrome 和 Firefox

asp.net-mvc - 如何在 ASP.NET MVC 中调试 "No route in the route table matches the supplied values."

c# - 使用 HTTPWebRequest 获取远程页面的标题

javascript - Window.Location.Href 或其他重定向 _self 的方法不起作用(MVC View )

c# - 单击按钮调用 Controller 方法时需要将文本框值作为参数传递