本地化网站,1个bug:回发事件不起作用

时间:2011-09-23 15:42:39

标签: c# asp.net currentuiculture

我几乎完成了ASP.NET中一个主要网站的本地化。我正在使用CurrentUICulture来影响我的本地化。一切顺利,除了我有回发事件的情况。

如果我触发此回发事件,则从其文化已更改的页面中,Postback事件使用OLD CurrentUICulture 值。如果我先访问过网站上的其他一些页面,它会正常工作。

我使用正确本地化的页面来触发此事件,这就是我确信本地化有效的原因。

回发事件是否在另一个线程上?我错过了什么?我无法发布项目中的任何代码。我使用的唯一设置是静态包装类中的Thread.CurrentUICulture来设置和获取我的本地化。该类仅包含静态属性。

编辑:我们在加载页面的OnInit中设置currentUIculture。我们通过每次从会议设置来维护ui文化。

2 个答案:

答案 0 :(得分:1)

不是在页面OnInit事件中设置文化,而是覆盖InitializeCulture事件。

这是一个例子,在vb中,但你明白了。

Protected Overrides Sub InitializeCulture()
    Dim locale As String = Request.QueryString("lc")
    If locale IsNot Nothing AndAlso locale = "fr-ca" Then
        Me._LocaleID = 3084
    End If
    Dim culture As New System.Globalization.CultureInfo(Me._LocaleID)
    System.Threading.Thread.CurrentThread.CurrentCulture = culture
    System.Threading.Thread.CurrentThread.CurrentUICulture = culture
End Sub

答案 1 :(得分:0)

我刚才意识到我没有回答这个问题。

事实证明,回发(最终重定向)到另一个域会使会话消失(显然,无论如何都很有必要)。

我们使用httpCookie域设置始终将所有Cookie设置为主域,因此会话在不同的子域(en.website.com和nl.website.com)之间共享。

相关问题