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:
Add New
<%@ MasterType VirtualPath="location of your masterpage" %>
directive to .aspx pageDeclare one public function in MasterPage.
Call the function from content page using
Master.functionName()
.