我对特定文化的CultureInfo值有一些问题,“pt-PT”。为了缩小范围,我使用.net框架在VS 2017中创建了一个MVC项目,并在视图About.cshtml中添加了以下行:
<p>@(new System.Globalization.CultureInfo("pt-PT").DateTimeFormat.FirstDayOfWeek)</p>
这是我对visual studio创建的项目所做的唯一更改。
当我使用IIS Express在VS中运行此项目时, FirstDayOfWeek 返回的值为“Monday”。
但是,如果我在IIS中运行此项目(在同一台机器上), FirstDayOfWeek 返回的值为'Sunday'。
我期待价值相同并且是'星期一'。 我对价值观的差异感到困惑,并希望在理解它时有所帮助。
注意:经过进一步测试后,我得出结论,如果我在计算机设置中更改了一周的第一天,则在IIS Express中运行项目时会反映出此更改。我更困惑......我猜这个属性没用......
答案 0 :(得分:0)
默认情况下,IIS使用DateTimeInfo.InvariantInfo
返回FirstDayOfWeek
作为其Application_BeginRequest
值(也使用美国日期格式)。如果您不确定为什么IIS(而不是Express)使用的文化不同于您使用的文化,请在Global.asax代码中的protected void Application_BeginRequest(object sender, EventArgs e)
{
string culture = "pt";
if (HttpContext.Current.Request.Path.Contains("pt"))
{
culture = "pt"; // Portuguese, use 'pt-PT' if not sure
}
else
{
// set to other cultures, including invariant (default) one
}
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(culture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
}
处理程序中设置区域性信息:
globalization
或者在web.config文件中使用Thread.Culture
元素来设置Thread.UICulture
&amp; <globalization culture="pt-PT" uiCulture="pt" />
:
iisreset
如果以上所有设置均无效,请使用以下步骤:
- 打开IIS管理器,选择您的站点并打开“.NET全球化”。
- 打开“文化”标签,同时设置文化&amp; UI文化部分为葡萄牙语。
- 重新启动应用程序池或使用
醇>NetworkService
命令应用所有更改。
注意:作为一般惯例,站点不应该依赖服务器的应用程序池设置来按预期的方式使用指定的语言环境/文化。有关文化设置的详细信息,请参阅Set the Culture and UI Culture for ASP.NET Web Page Globalization。
另外,请检查应用程序池的区域设置是否设置为关注LocalSystem
的用户帐户,如有必要,请将其更改为 <div class="Button">
<a href="javascript:void(0)" class="button yellow-btn addToCart trackEvent" rel="Thebutton" data-action="Tap">Tap this button</a>
<div id="ButtonTwo" class="ButtonTest2">
<a href="javascript:void(0)"><p class="MeButton" id="ButtonID">Final button test</p></a></div>
。
类似问题: