How do I call a method in a Master Page from a content’s code-behind page?

I have a public method in my ASP.NET Master Page. Is it possible to call this from a content page, and if so what are the steps/syntax?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

From within the Page you can cast the Master page to a specific type (the type of your own Master that exposes the desired functionality), using as to side step any exceptions on type mismatches:

var master = Master as MyMasterPage;
if (master != null)
{
    master.Method();
}

In the above code, if Master is not of type MyMasterPage then master will be null and no method call will be attempted; otherwise it will be called as expected.

Method 2

Use the MasterType directive like e.g.:

<%@ MasterType VirtualPath="~/masters/SourcePage.master" %>

Then you can use the method like this:
Master.Method();

Method 3

You can simply do like…

MasterPageClassName MasterPage = (MasterPageClassName)Page.Master;
MasterPage.MasterMethod();

Check for Details ACCESS A METHOD IN A MASTER PAGE WITH CODE-BEHIND

Method 4

MyMasterPageType master = (MyMasterPageType)this.Master;
master.MasterPageMethod();


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x