asp.net mvc 3 - MVC 3 Razor: раскрывающийся список выбора страны - PullRequest
2 голосов
/ 14 октября 2011

Код действия моего контроллера:

ViewBag.country = from p in CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures)
                              select new SelectListItem
                              {
                                  Text = p.EnglishName,
                                  Value = p.DisplayName
                              };

Просмотр кода:

<dl>
   <dt>
    <label>
        Country:
    </label>
   </dt>
   <dd>
   @Html.DropDownListFor(model => model.Country, (IEnumerable<SelectListItem>)ViewBag.country)
   </dd>
<dl>

Создает раскрывающийся список несортированныхязыки.Но мне нужен выпадающий список отсортированного списка стран.Помогите пожалуйста !!!!

Ответы [ 2 ]

7 голосов
/ 14 октября 2011

Windows и / или .Net не содержат список всех стран.

Список языков / культур стабилен, страны приходят и уходят или часто меняют имя.

Перейдите на сайт ISO, и вы сможете скачать списокстраны со своего сайта.Вы должны скачать этот список и часто обновлять свои данные.

Обновление : список кодов стран больше не распространяется свободно по ISO, более подробную информацию можно найти на сайте iso.org.

И вы должны решить, хотите ли вы включить в этот список такие страны, как Палестина (Палестина в этом списке, просто пример «новых» стран).Возможно, вам придется добавить их вручную.

5 голосов
/ 14 октября 2011

Это то, что вы хотите?

ViewBag.country = from p in CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures).OrderBy(c=>c.Name)
                          select new SelectListItem
                          {
                              Text = p.EnglishName,
                              Value = p.DisplayName
                          };
...