0

私のウェブサイトは、VS 2010 / vbを使用して、10の言語にローカライズされています。最初に旗をクリックすると、その言語に変わります。しかし、別の言語をクリックしても、切り替わりません。切り替えるには、もう一度クリックする必要があります。誰かが私の問題が何であるか知っていますか?

これが私のhomepage.master.vbの背後にある私のコードです:

 Imports System
Imports System.Data
Imports System.Configuration
Imports System.Collections
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports Udev.MasterPageWithLocalization.Classes
Partial Public Class Homepage
Inherits System.Web.UI.MasterPage
Protected Sub Page_Load(sender As Object, e As EventArgs)
End Sub

Protected Sub RequestLanguageChange_Click(sender As Object, e As EventArgs)
    Dim senderLink As LinkButton = TryCast(sender, LinkButton)

    'store requested language as new culture in the session
    Session(Udev.MasterPageWithLocalization.Classes.Global.SESSION_KEY_CULTURE) =
    senderLink.CommandArgument()

    'reload last requested page with new culture
    Server.Transfer(Request.Path)
End Sub
End Class

これが私のdefault.aspx.vbの背後にある私のコードです:

Imports System
Imports System.Data
Imports System.Configuration
Imports System.Collections
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports Udev.MasterPageWithLocalization.Classes

Partial Public Class _Default
    Inherits BasePage
    Protected Sub Page_Load(sender As Object, e As EventArgs)
    End Sub
End Class

任意の提案やガイダンスをいただければ幸いです!

4

1 に答える 1

1

これはおそらくASP.netのライフサイクルと関係があります。リンクボタンをクリックすると、RequestLanguageChange_Clickイベントを実行する前にページがリロードされます。これは、セッション変数が変更される前にページがロードされることを意味します。ただし、server.transferを実行するため、問題はありません(ダブルリフレッシュを除く)。ライフサイクルについてはあまり詳しくありませんが、ぜひチェックしてみてください。役立つかもしれません。

于 2012-04-25T17:57:04.407 に答える