在 web.config 中设置的当前文化

Posted

技术标签:

【中文标题】在 web.config 中设置的当前文化【英文标题】:Current culture that has been set in web.config 【发布时间】:2016-08-28 13:09:19 【问题描述】:

我在全球化部分的 web.config 中设置了文化。资源文件正确加载(对于翻译的单词)。但是当我想显示星期几时,它不能根据 web.config 中的文化工作,而是使用服务器文化。

如何根据 web.config 中设置的文化而不是网络服务器文化获取星期几?

(再次重申:我对资源文件没有任何问题。)

web.config 中的文化设置:

<system.web>
        <globalization
             fileEncoding="utf-8"
             requestEncoding="utf-8"
             responseEncoding="utf-8"
             uiCulture="ar"
             culture="ar"
          />

显示日期的代码:

var culture = new System.Globalization.CultureInfo( "ar" );
var day = culture.DateTimeFormat.GetDayName( DateTime.Today.DayOfWeek );
dayOfWeekLbl.Text = day;

我在我的 C# 代码中设置了文化,它可以工作。但我希望代码使用 web.config 中的文化。

我没有为资源文件编写任何代码,它适用于 web.config 中的设置。

【问题讨论】:

编辑您的问题并从您设置文化的 web.config 添加代码。 【参考方案1】:

您的 web.config 设置正确,应该可以正常工作。似乎您在项目的其他地方设置了文化。寻找这样的东西:

在代码中设置区域性的函数。 InitializeCulture() 函数通常用于此目的。

程序集属性。示例[assembly: AssemblyCulture("en-US")]

页面指令。示例&lt;%@ Page Culture="en-US" UICulture="en-US" %&gt;

如果您发现其中任何一个,请将其删除并重试以查看是否能解决问题。当然,InitializeCulture()函数的情况下,它可能需要用于其他目的,所以你必须修改它而不是删除它。

【讨论】:

没有InitializeCulture()&lt;%@ Page Culture="en-US",只有一个AssemblyCulture(""),它是给fckeditor的,它没有引号,只有AssemblyCulture("") 好的,但是肯定有一些代码正在改变线程的文化。在您的整个解决方案中搜索culture,看看是否能找到任何东西。

以上是关于在 web.config 中设置的当前文化的主要内容,如果未能解决你的问题,请参考以下文章

MVC 忽略 web.config 中的文化设置

System.Web.HttpException: Maximum request length exceeded

mvc 3 设置当前文化不变量

如何在 web.config 中设置会话超时

在 Web.Config 中设置允许的 IP

如何在 ASP.NET Core 的 web.config 中设置会话超时