动态母版页,可访问两个母版中的变量

Posted

技术标签:

【中文标题】动态母版页,可访问两个母版中的变量【英文标题】:Dynamic Master Page with access to variables in both masters 【发布时间】:2019-06-02 03:02:32 【问题描述】:

我有两个母版页,一个用于桌面,另一个用于移动, 并且取决于我动态使用桌面或移动母版页的设备。 但我无法从母版页中的子 ASPX 页面访问变量。

背后的 ASPX 代码:

protected override void OnPreInit(EventArgs e)

    if (Request.Browser.IsMobileDevice)
    
        this.MasterPageFile = "MobileMasterPage.master";
    
    else
    
        this.MasterPageFile = "MasterPageDesktop.master";
               

在两个母版页中都有变量

public int TinyMceWidth  get; set; 
public int TinyMceHeight  get; set; 

但我无法从 ASPX 后面的代码中访问这两个变量:

protected void Page_Load(object sender, EventArgs e)
            
    Master.TinyMceWidth = 1000; // Can't access 
    Master.TinyMceHeight = 1000; // Can't access    
   

我该如何解决?

【问题讨论】:

你可以使用MVC的领域吗? 【参考方案1】:

你可以这样访问它。

var master = (Site1)Page.Master;
master.TinyMceWidth = 1000;

Site1 是母版页的类名

public partial class Site1 : System.Web.UI.MasterPage


所以因为你有 2 个主人,你需要为他们创建 2 个变量

var masterMobile = (Site2)Page.Master;

【讨论】:

以上是关于动态母版页,可访问两个母版中的变量的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET内容页中访问母版页中的对象

asp.net 如何从具有嵌套母版页的内容页更改父母版页中的控件

如何使用动态母版页为每个用户制作自定义菜单?

如何从母版页上的用户控件访问母版页中定义的数据集?

asp.net 中母版页、用户控件中属性的调用、赋值方法求解。

从内容页面设置母版页上的属性值