2013-05-01 66 views
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") 

我在做什麼錯?謝謝!

我不能使用dropdownlistfor,因爲在我看來,國內下拉列表不與我的模型的約束。我只想填充一個下拉列表,其中的國家名稱是字符串,我將在之後重複使用。

+0

不應該'文字= p.EnglishName'是'文本= p.DisplayName'或只是'頁。 Name'? – gwin003 2013-05-01 17:47:03

+0

我試過了,但是這給出了完全相同的結果:/ – hsim 2013-05-01 17:48:24

+0

呃? [據此](http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.displayname.aspx)應該工作。 – tnw 2013-05-01 17:51:45

回答

0

嘗試改變

@Html.DropDownList("country") 

@Html.DropDownListFor(model => model.Country, (IEnumerable<SelectListItem>)ViewBag.country) 
+0

嗯,這個問題是我無法將國家綁定到我的模型上,因爲我在我的視圖中列出了我的模型。 – hsim 2013-05-01 17:58:03

+0

@HerveS @ Html.DropDownListFor(「country」,(IEnumerable )ViewBag.country)呢? – Splendor 2013-05-01 18:00:33

+0

這是值得一試,我會讓你回到這。 – hsim 2013-05-01 18:01:32

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" }) 
相關問題