0

我想创建一个包含国家名称的下拉列表。

我试过这个:

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") 

我究竟做错了什么?谢谢!

注意我不能使用下拉列表,因为我的视图中的国家下拉列表没有与我的模型绑定。我只想用国家名称作为字符串填充一个下拉列表,我将在之后重用。

4

3 回答 3

0

尝试改变

@Html.DropDownList("country") 

@Html.DropDownListFor(model => model.Country, (IEnumerable<SelectListItem>)ViewBag.country)
于 2013-05-01T17:54:54.530 回答
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" })
于 2013-05-01T18:12:25.907 回答
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");
于 2018-09-14T14:28:44.080 回答