所以我有2个母版页和一个用户控件,几乎每个页面都使用它。页面可能具有2个母版页中的一个,并且两个母版页都具有一个共同的属性。这是我需要访问的列表变量。我如何知道正在使用哪个母版页然后访问它?
我正在尝试
MasterPage mp = (MasterPage)this.Page.Master;
但是当我调试时,我没有看到list属性。 mp.List不起作用。关于如何获得这个属性的任何想法?
提前致谢
答案 0 :(得分:0)
考虑使用简单的界面来简化这一过程。
public interface IHasProperty
{
List<string> MyVariable {get;set;}
}
public partial class MasterPage1 : (other stuff), IHasProperty
{
List<string> MyVariable {get;set;}
}
public partial class MasterPage2 : (other stuff), IHasProperty
{
List<string> MyVariable {get;set;}
}
然后从用户控件,你可以通过使用这样的东西来访问它。
var myPropPage = Page.Master as IHasProperty;
if (myPropPage == null)
{
//this property isnt on the page.
return;
}
myPropPage.MyVariable.Add("new Value");// or whatever you needed to do with it.
答案 1 :(得分:0)
在aspx上添加对母版页的强类型引用,如下所示:
<%@ MasterType VirtualPath="~/Site.Master" %>
然后在后面的代码中,您可以执行此操作。无需强制转换,也可以访问列表。