MasterPage和内容页面之间的全球化

时间:2015-07-24 12:58:28

标签: c# asp.net globalization

我有一个母版页和一些有自己控件的内容页面。在母版页内,我有一个下拉列表,其中包含用户可以选择的语言。因此,当用户点击它时,网站内容语言将相应地改变。

我的问题是,当我选择其他语言时,我可以通过在母版页中使用UIculture和文化来成功更改我的网站内容,但我不知道如何从控件(下拉列表)中更改内容页面中的文化确定文化来自母版页。当我调试时,似乎内容页面Page_Load将首先运行,然后在母版页中进行少量编码,以更改其中的语言。

1 个答案:

答案 0 :(得分:0)

请按照以下步骤操作:

  1. 在母版页中,创建一个返回文化名称的公共字符串属性(例如ChosenCulture)。
  2. 在内容页面中,添加MasterType指令<%@ MasterType VirtualPath="~/YourMasterPage.master" %>然后您就可以通过内容页面中的Master.访问MasterPage属性
  3. 在内容页面中覆盖InitializeCulture方法并设置UICulture属性。

    protected override void InitializeCulture()
    {
        UICulture = Master.ChosenCulture;
        Culture = Master.ChosenCulture;
        base.InitializeCulture();
    }
    
  4. 要在帖子之间保持ChosenCulture的价值,您可以使用Session:

    母版:

    public string ChosenCulture
    {
        get { return Session["ChosenCulture"]; }
        set { Session["ChosenCulture"] = value; }
    }
    

    在DropDownList的OnChanged事件中,只需设置ChosenCulture属性:

    ChosenCulture = MyDropDownList.Value;