2010-07-14 211 views
0

我可以更改我的頁面的語言,但是如果我選擇法語並且我在當前頁面上,並且如果我嘗試加載另一個頁面,那麼該頁面將不會以法語顯示。我如何設置它以保持一致?在母版頁ASP.NET語言切換

切換按鈕:
如果Page.Culture = 「英語(美國)」 然後 的Response.Redirect(Request.Url.AbsolutePath + 「LANG = FR-CA?」) elseif的Page.Culture = 「法語(加拿大),」 然後 的Response.Redirect(Request.Url.AbsolutePath + 「LANG = EN-US?」) 結束如果

,並在每個頁面:

保護的覆蓋子InitializeCulture() Dim lang As String = String.Empty

lang = Request.QueryString("lang") 

    If lang IsNot Nothing Then 

     Session("culture") = lang 
     Thread.CurrentThread.CurrentCulture = New CultureInfo(lang) 
     Thread.CurrentThread.CurrentUICulture = New CultureInfo(lang) 

    Else 

     If Session("culture") IsNot Nothing Then 

      lang = Session("culture").ToString() 
      Thread.CurrentThread.CurrentCulture = New CultureInfo(lang) 
      Thread.CurrentThread.CurrentUICulture = New CultureInfo(lang) 
     End If 
     Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US") 
     Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US") 
    End If 
    MyBase.InitializeCulture() 
End Sub 
+0

我們可以看到一些關於如何加載和保存語言的代碼?可能有很多不同的原因,爲什麼這不起作用,沒有顯示任何東西,我不明白任何人都可以提供幫助。 – spinon 2010-07-14 04:21:14

回答

0

我想在從頁面切換到主頁面切換時,查詢字符串參數不會回傳。

您可以嘗試和調試應用程序以查看從頁面更改時您的Request.QueryString集合是什麼?

也許一個更好的方式來存儲文化將在cookie中或(如果您使用asp.net成員資格)在用戶配置文件中。

我還可以注意到,如果出現這種情況,基本頁面將很方便實現InitializeCulture方法,而不是在每個頁面中重複它。

+0

這是否解決了您的問題還是由其他問題引起的? – Stefaan 2010-07-19 05:38:04