ASP.NET MVC WebApp中的强制文化

时间:2014-01-13 18:53:35

标签: c# asp.net-mvc culture

我希望在我的网络应用程序中强制使用丹麦文化,但我无法让它发挥作用。我试图填写一个带有丹麦国名的下拉列表,但是他们用英文返回。

public static IEnumerable<SelectListItem> GetCountries(string selectedDisplayName)
{
    var countryNames = new List<SelectListItem>();
    foreach (var cul in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
    {
        var country = new RegionInfo(new CultureInfo(cul.Name, false).LCID);
        var item = new SelectListItem()
        {
            Text = country.DisplayName,
            Value = country.DisplayName
        };
        if (!String.IsNullOrEmpty(selectedDisplayName) && country.DisplayName.Equals(selectedDisplayName))
        {
            item.Selected = true;
        }
        countryNames.Add(item);
    }
    IEnumerable<SelectListItem> nameAdded = countryNames.GroupBy(x => x.Text).Select(x => x.FirstOrDefault()).ToList().OrderBy(x => x.Text);
    return nameAdded;
}

我的web.config有这个(没有效果):

<system.web>
    <globalization uiCulture="da-DK" culture="da-DK" />
</system.web>

有人有什么建议吗?

1 个答案:

答案 0 :(得分:2)

根据MSDN(http://msdn.microsoft.com/en-us/library/system.globalization.regioninfo.displayname(v=vs.110).aspx),RegionInfo.DisplayName将使用已安装的.NET版本的语言,该语言总是与Windows安装的语言相同。

相反,请使用始终为本地名称的RegionInfo.NativeNamehttp://msdn.microsoft.com/en-us/library/system.globalization.regioninfo.nativename(v=vs.110).aspx)。