我有一些遗留的sitecore asp网络应用程序。 我发现在布局(aspx)上我有ImageButton控件应该改变网站语言。
protected void btnLanguage_Click(object sender, EventArgs e)
{
ImageButton flag = (ImageButton)sender;
if (string.IsNullOrEmpty("") == false)
{
UserContext.CurrentCulture = LanguageManager.GetLanguage(flag.CommandArgument);
}
else
{
SC.Context.Language = LanguageManager.GetLanguage(flag.CommandArgument);
}
}
但是在调用此事件后,我有很多应该被翻译的控件。通过asp网页生活方式流程它不是很好的行为,但无论如何我需要用它做点什么。在我的案例中,最好的方法是什么以及如何以正确的方式完成?
答案 0 :(得分:2)
Alistair Deneys记录了如何使用事件来允许组件相互通信。值得了解这一机制,看看Alistair的帖子Decoupling Through the Sitecore Event Pool。
答案 1 :(得分:1)
如果这是Sitecore应用程序,那么让Sitecore处理它,将图像按钮更改为带有超链接的常规图像并传入语言参数(使用LinkManager):
/en-CA/some-folder/some-page.aspx
/some-folder/some-page.aspx?sc_lang=en-CA
然后,您可以根据Sitecore.Context.Lanaguge
一些有用的info in this post,请参阅评论。