Модуль HTTP для изменения культуры не имеет никакого эффекта - PullRequest
0 голосов
/ 07 марта 2012

Я использую 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 Ответ

2 голосов
/ 07 марта 2012

Форматы зависят от Thread.CurrentUICulture .

Так вы бы сделали:

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

См. , как установить Культуру в asp.net на MSDN .

...