从母版页类调用的内容页面类方法

时间:2009-05-20 10:25:10

标签: asp.net methods master

我的内容页面类中有一个公共方法,我想从母版页类中调用此方法
感谢

3 个答案:

答案 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)

步骤进行:

  1. 将新的<%@ MasterType VirtualPath="location of your masterpage" %>指令添加到.aspx页面

  2. 在MasterPage中声明一个公共函数。

  3. 使用Master.functionName()从内容页面调用该功能。