【发布时间】:2011-06-13 15:54:25
【问题描述】:
我的 ASP.NET 母版页中有一个公共方法。是否可以从内容页面调用它,如果可以,步骤/语法是什么?
【问题讨论】:
标签: c# asp.net master-pages
我的 ASP.NET 母版页中有一个公共方法。是否可以从内容页面调用它,如果可以,步骤/语法是什么?
【问题讨论】:
标签: c# asp.net master-pages
在Page 中,您可以将Master 页面强制转换为特定类型(您自己的Master 类型,它公开了所需的功能),使用as 来绕过类型不匹配的任何异常:
var master = Master as MyMasterPage;
if (master != null)
{
master.Method();
}
在上面的代码中,如果Master 不是MyMasterPage 类型,那么master 将是null,并且不会尝试任何方法调用;否则它将按预期调用。
【讨论】:
使用MasterType directive,例如:
<%@ MasterType VirtualPath="~/masters/SourcePage.master" %>
那么你可以使用这样的方法:
Master.Method();
【讨论】:
你可以简单地做...
MasterPageClassName MasterPage = (MasterPageClassName)Page.Master;
MasterPage.MasterMethod();
【讨论】:
MyMasterPageType master = (MyMasterPageType)this.Master;
master.MasterPageMethod();
【讨论】:
private MyMasterPageType master { get { return (MyMasterPageType)this.Master; } }