'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?
Solution 1:[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.
Solution 2:[2]
Use the MasterType
directive like e.g.:
<%@ MasterType VirtualPath="~/masters/SourcePage.master" %>
Then you can use the method like this:
Master.Method();
Solution 3:[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
Solution 4:[4]
MyMasterPageType master = (MyMasterPageType)this.Master;
master.MasterPageMethod();
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Grant Thomas |
Solution 2 | Phil |
Solution 3 | Muhammad Akhtar |
Solution 4 | George Duckett |