ASP.net全球化不适用于实时环境中的文本框

时间:2015-05-11 20:19:46

标签: c# asp.net

我试图为我们设置一个多语言网站。我已经在web.config中包含了:

<globalization culture="auto:en-US" uiCulture="auto:en-US" enableClientBasedCulture="true" /> 

还检查了IIS,但没有运气

所有转换都适用于我的开发环境Windows 8.1,但在实时环境中,文本框显示十进制数字为US&#34;。&#34;对于南非而不是&#34;,&#34;它们用作小数分隔符,奇怪的标签和其他显示确实转换。实时环境是Windows srv 2008 R2。有什么指针吗?

1 个答案:

答案 0 :(得分:0)

Web.config编写的设置总是可以通过多种方式覆盖。

了解可能全球化设置被覆盖的其他地方。

1。)首先检查页面的Page指令,

<%@ Page Culture="en-US" UICulture="en-US" Language="C#"
    MasterPageFile="~/MasterPage.master" AutoEventWireup="true" 
    CodeFile="Default.aspx.cs" Inherits="Default" %>

检查属性的值:CultureUICulture

2。)搜索任何可能的实施:InitializeCulture()      方法,这是一种常用的覆盖文化设置的方法      运行。

     使用Ctrl+Shift+F在整个解决方案中搜索此方法。一个      此方法的示例实现如下:

protected override void InitializeCulture()
    {
        string value  = Request.Form["dropdownlist1"];       
        if (!string.IsNullOrEmpty(value))
        {
            this.Culture = value;
            this.UICulture = value;
        }    
        base.InitializeCulture();
    }

3.。)装配属性也很重要:

[assembly: AssemblyCulture("en-US")]
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]

4.)我认为无需检查Web.config设置     在服务器(主机)上,因为你已经在你的网站上覆盖了它们     web.config中。

5.)作为最后一次检查,开发人员可能会使用global.asax来设置文化,例如:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    // Just a sample only...       
    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    Thread.CurrentThread.CurrentUICulture =   
                               Thread.CurrentThread.CurrentCulture;
}