我的内容页面类中有一个公共方法,我想从母版页类中调用此方法
感谢
答案 0 :(得分:7)
您可以从基类继承您的页面。然后,您可以在基类中创建一个虚拟方法,该方法将在您的页面中被覆盖。然后,您可以从主页面调用该虚拟方法,如下所示 -
(cphPage.Page as PageBase).YourMethod();
此处, cphPage
是您母版页中 ContentPlaceHolder
的ID。 PageBase
是包含 YourMethod
方法的基类。
编辑:当然,在使用页面实例调用 YourMethod
方法之前,您必须进行空检查。
答案 1 :(得分:3)
如果您不想使用任何基页
将其添加到您的母版页
private object callContentFunction(string methodName, params object[] parameters)
{
Type contentType = this.Page.GetType();
System.Reflection.MethodInfo mi = contentType.GetMethod(methodName);
if(mi == null)return null;
return mi.Invoke(this.Page, parameters);
}
然后使用它
callContentFunction(“myPublicMethodName”,myParam1,myParam2 ...);
答案 2 :(得分:2)
步骤进行:
将新的<%@ MasterType VirtualPath="location of your masterpage" %>
指令添加到.aspx页面
在MasterPage中声明一个公共函数。
使用Master.functionName()
从内容页面调用该功能。