content page class method calling from master page

2019-01-12 01:46发布

问题:

I have a public method in my content page class, I want to call this method from master page class
Thanks

回答1:

You can inherit your page from a base class. Then you can create a virtual method in your base class which will get overridden in your page. You can then call that virtual method from the master page like this -

(cphPage.Page as PageBase).YourMethod();

Here, cphPage is the ID of the ContentPlaceHolder in your master page. PageBase is the base class containing the YourMethod method.

EDIT: Of course, you'll have to put a null checking before you call the YourMethod method using the page's instance.



回答2:

if you do not want to use any base page

add this to your master page,

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);
}

then use it

callContentFunction("myPublicMethodName", myParam1, myParam2...);



回答3:

STEPS:

  1. Add New <%@ MasterType VirtualPath="location of your masterpage" %> directive to .aspx page

  2. Declare one public function in MasterPage.

  3. Call the function from content page using Master.functionName().