如何比较我的实际MasterPage

时间:2011-12-28 15:10:38

标签: c# asp.net

我的项目中有2个MasterPage。

MasterPage to common pagesMasterPage to PopUp pages

我有一个由所有页面继承的类BasePage,在BasePage中我需要验证哪个是使用的实际MaterPage。

例如:

if(Master.GetType() == typeof(Master) ....

我该如何测试?

3 个答案:

答案 0 :(得分:4)

is运算符可以方便地检查类型。

如果两个主人(我称之为MasterPage和MasterPagePopup)是从一个共同的祖先(Page?)继承而不是另一个,你可以做这样的事情:

if(Master is MasterPage) 
  { do some stuff; }
if(Master is MasterPagePopup)
  { do other stuff; }

唯一的问题是,如果一个主人是从另一个继承的;如果MasterPagePopup是从MasterPage继承的,那么以上两种情况对于MasterPagePopup都是正确的,因为他 IS 都是MasterPage和MasterPagePopup。但是,if...else if可以解决此问题:

if(Master is MasterPagePopup)
  { do other stuff; }
else if(Master is MasterPage) // popup is already handled and will not hit this
  {do some stuff; }

答案 1 :(得分:1)

检查MasterPage类型的最简单方法是使用is关键字:

if (this.Master is MasterPageCommon) {

} else if (this.Master is MasterPagePopup) {

}

答案 2 :(得分:1)

你应该能够做到

if(page.Master is PopUpMaster)
{
   //Do Something
}
else if (page.Master is NormalMaster)
{
   //Do Something
}