0

我必须处理一个 ASP.NET 项目,在该项目中我必须支持本地化和翻译。colture 的更改可能仅发生在 Page 对象的 InitializeCulture 方法中,而不会发生在 MasterPage 上。

通常,当我必须处理常见元素(页眉/页脚)时,我会将它们放在 MasterPage 中,但这样做会阻止我正确本地化这些元素。因此,我很想了解如何使用将由所有其他页面(一种 MasterPage)派生的通用基本页面来模板化页面。

我发现这篇文章清楚地解释了如何处理这种情况,但我认为有点过时了: https ://www.codeproject.com/Articles/2915/ASP-NET-Page-Templates-Using-Inheritance

所以我会问是否有更好的方法或技术来实现我的目标。

4

1 回答 1

1

这里有一个简单的演示如何将变量发送到母版页。在名为 的 Master 中放置一个公共属性Language

public partial class Site1 : System.Web.UI.MasterPage
{
    public string Language { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = $"My language is {Language}.";
    }
}

然后在普通页面中为 Master 添加一个属性并Page.Master转换为 Master Page 的部分类(Site1默认情况下)。

public partial class Default1 : System.Web.UI.Page
{
    public Site1 master;

    protected void Page_Load(object sender, EventArgs e)
    {
        master = (Site1)Page.Master;
    }

然后您可以Language从页面访问主控。

master.Language = "nl-NL";
于 2021-08-24T19:37:35.717 回答