c# - 动态母版页,可访问两个母版中的变量
问题描述
我有两个母版页,一个用于桌面,另一个用于移动,并且取决于我动态使用桌面或移动母版页的设备。但我无法从母版页中的子 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
}
我该如何解决?
解决方案
你可以像这样访问它。
var master = (Site1)Page.Master;
master.TinyMceWidth = 1000;
Site1
是母版页的类名
public partial class Site1 : System.Web.UI.MasterPage
{
}
所以因为你有 2 个主人,你需要为他们创建 2 个变量
var masterMobile = (Site2)Page.Master;
推荐阅读
- java - ExoPlayer 从自定义数据源访问值
- sql - 当一列具有唯一值时如何删除重复记录
- npm - 如何修复 npm 错误和警告?'npm audit fix' 有效吗?
- java - 简单 XML 框架:回退到未知枚举值的默认值
- discord.js - Discord.js 建议通道代码不起作用
- rest - 如何通过服务名访问rest api(部署在k8集群中)
- list - rbind 具有不同列名的多个 csv 文件 R
- python - 如何在 Python 中生成连接数据图?
- css - Chrome 上的图像溢出网格单元格,Firefox 上的正确外观 - 网格区域和媒体查询
- windows - FORMATETC 和“TYMED”中“ETC”的含义?