改变文化的Http模块没有任何效果

时间:2012-03-07 07:33:15

标签: c# asp.net cultureinfo

我在项目中使用CultureModule.cs根据变量的值设置文化信息。这是示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Globalization; 

namespace CwizBankApp
{
    public class CultureModule:IHttpModule 
    {
        public void Dispose()
        {
        }
        public void Init(HttpApplication context)
        {
            context.PostAuthenticateRequest += 
                          new EventHandler(context_PostAuthenticateRequest);
        }
        void context_PostAuthenticateRequest(object sender, EventArgs e)
        {

            CultureInfo currentCulture;
            if (Global.gDateFormat.Trim() == "British")
            {
                currentCulture = new System.Globalization.CultureInfo("en-GB");
            }
            else
            {
                currentCulture = new System.Globalization.CultureInfo("en-US");
            }


            System.Threading.Thread.CurrentThread.CurrentCulture 
                                                             = currentCulture;
        }
    }
}

在此之后,我在web.config中进行配置,如下所示:

<add name="CultureModule" 
               type="CwizBankApp.HttpModules.CultureModule,CwizBankApp"/>

目前我的变量是英国格式,但日期是以美国格式执行。

我的问题是,我是以正确的方式做事还是仍然缺少某些东西。

1 个答案:

答案 0 :(得分:2)

格式取决于Thread.CurrentUICulture

所以你会这样做:

System.Threading.Thread.CurrentThread.CurrentUICulture = currentCulture;

请参阅how to set the Culture in asp.net on msdn