当谈到 Web 应用程序时,我是个菜鸟。但我正在尽我最大的努力使用 ASP.NET 2.0 来学习它,对于这篇长篇文章感到抱歉。
我有一个母版页(M1)和 3 个不同的内容页 C1、C2、C3,它们基本上使用母版页 M1 在内容占位符中填充其各自的内容。
所有网络表单都已本地化,并在资源 (xml) 文件中添加了适当的语言资源字符串,例如:Resource.en-US.xml、Resource.de-DE.xml 等。最后在代码中引用了资源在设置适当的当前文化和当前 uiculture 之后。
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
//where the btnSubmit is a control on the form
btnSubmit.Text = rm.GetString("Submit", Thread.CurrentThread.CurrentCulture);
现在问题来了,我在母版页中包含了一个选项,可以更改用户可用的母版页中的显示语言,作为带有 asp:image 的 asp:linkbutton。每当用户单击所需语言的链接按钮时,内容页面控件应显示与所选文化相对应的整个内容字符串。
我如何做到这一点?
我是否必须实现 Session 变量以包含所选语言?或者存储在 Cookie 中也可以完成这项工作?
我试过的
在母版页加载事件上。我尝试调用一个方法SetCultureSpecificInformation,它基本上设置 CurrentThread 的文化和 uiculture 属性,并将所选语言存储在会话变量中。
在 asp:linkbutton OnClick 事件处理程序上也有类似的实现。在这种情况下,它会修改会话变量。
最后引用内容网页 OnPage_Load 事件上的会话变量。
但不知何故,上述方法并没有产生预期的结果。语言切换不一致。任何可以帮助我提供足够好的设计方法来实现相同功能的人。
提前致谢