我想创建一个包含国家/地区名称的下拉列表。
我试过这个:
ViewBag.country =
from p in
CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures)
.OrderBy(c => c.Name)
select new SelectListItem
{
Text = p.EnglishName,
Value = p.DisplayName
};
但不是给我国家的名字,它给了我语言,然后是语言的国家......
这是视图,简单为“你好”:
Country: @Html.DropDownList("country")
我做错了什么?谢谢!
注意 我无法使用下拉列表,因为我视图中的国家/地区下拉列表未与我的模型绑定。我只想填充一个下拉列表,其中包含国家/地区名称作为字符串,我将在之后重复使用。
答案 0 :(得分:0)
尝试更改
@Html.DropDownList("country")
到
@Html.DropDownListFor(model => model.Country, (IEnumerable<SelectListItem>)ViewBag.country)
答案 1 :(得分:0)
试试这个
DataTable Country= ViewBag.country;
var country = (from L in Country.AsEnumerable()
select new
{
Value = L["DisplayName"],
Text = L["EnglishName"]
});
@Html.DropDownList("ddlCountry", new SelectList(country, "Value", "Text"), "--Select--", new { style = "width:150px" })
答案 2 :(得分:0)
国家名称实际上可以从RegionInfo中检索。试试这个:
var countries = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(c => new RegionInfo(c.LCID)).Distinct().OrderBy(c => c.EnglishName);
ViewBag.country = new SelectList(countries, "Name", "EnglishName");