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

本文关键字:事件 工作 网站 1个 bug 本地化 | 更新日期: 2023-09-27 18:09:26

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

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

我使用正确本地化的页面来触发此事件,这就是为什么我确信本地化工作。

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

编辑:我们在加载页面的OnInit中设置了当前文化。我们通过每次在会话中设置ui文化来维护它。

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

代替在页面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

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

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

我们已经使用httpCookie域设置总是设置所有的cookie到主域,所以会话是在不同的子域(en.website.com和nl.website.com)之间共享的。

相关文章: