Adrian S
Adrian S

Reputation: 1007

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?

Upvotes: 19

Views: 40976

Answers (4)

Uwe Keim
Uwe Keim

Reputation: 40736

Use the MasterType directive like e.g.:

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

Then you can use the method like this:

Master.Method();

Upvotes: 18

Muhammad Akhtar
Muhammad Akhtar

Reputation: 52241

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

Upvotes: 11

Grant Thomas
Grant Thomas

Reputation: 45058

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.

Upvotes: 38

George Duckett
George Duckett

Reputation: 32438

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

Upvotes: 6

Related Questions