0

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

如果我从更改了文化的页面触发此回发事件,则回发事件将使用 OLD CurrentUICulture值。如果我先访问了网站中的其他页面,它确实可以正常工作。

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

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

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

4

2 回答 2

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
于 2011-09-23T16:10:59.997 回答
0

I just realized I did not answer this question.

It turns out that a postback (which finally redirects) to another domain, makes the session disappear (obviously, surely good to know anyway).

We've used the httpCookie domain setting to always set all cookies to the main domain, so sessions are shared between the different subdomains (en.website.com and nl.website.com) .

于 2012-01-18T11:41:18.443 回答