一个用户控制的2个母版页,如何找到正在使用的母版页?

时间:2015-11-16 17:44:56

标签: asp.net master-pages

所以我有2个母版页和一个用户控件,几乎每个页面都使用它。页面可能具有2个母版页中的一个,并且两个母版页都具有一个共同的属性。这是我需要访问的列表变量。我如何知道正在使用哪个母版页然后访问它?

我正在尝试

MasterPage mp = (MasterPage)this.Page.Master;

但是当我调试时,我没有看到list属性。 mp.List不起作用。关于如何获得这个属性的任何想法?

提前致谢

2 个答案:

答案 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" %> 

然后在后面的代码中,您可以执行此操作。无需强制转换,也可以访问列表。