Access ASP.NET Master Page controls from Content Page

Mentioned here are two ways you can access MasterPage controls from Content Page

Approach 1

Go to the Content page (Default.aspx) and add the following line below the <Page> directive to register the MasterPage

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

Now in the code behind of ContentPage, access the MasterPage control in the following manner


TextBox tb = (TextBox)Master.FindControl("txtMaster");

tb.Text = "Something";


        Dim tb As TextBox = CType(Master.FindControl("txtMaster"), TextBox)

        tb.Text = "Something"

Approach 2

Expose the Text property of the TextBox control in the MasterPage and use get set properties as shown below


public string SomeText




        return txtMaster.Text;




        txtMaster.Text = value;





    Public Property SomeText() As String


            Return txtMaster.Text

        End Get

        Set(ByVal value As String)

            txtMaster.Text = value

        End Set


    End Property

Now accessing the Text property from the Content page is as simple as this line of code. Add the code in the codebehind of the MasterPage

Master.SomeText = "Something";

Will you give this article a +1 ? Thanks in advance

About The Author

Suprotim Agarwal
Suprotim Agarwal, ASP.NET Architecture MVP (Microsoft Most Valuable Professional) works as an Architect Consultant and provides consultancy on how to design and develop Web applications.

Suprotim is also the founder and primary contributor to DevCurry, DotNetCurry and SQLServerCurry. He is the Editor of a Developer Magazine called DNC Magazine. He has also written two EBooks 51 Recipes using jQuery with ASP.NET Controls. and The Absolutely Awesome jQuery CookBook

Follow him on twitter @suprotimagarwal


Lic. Enel R. Almonte said...

I Tried to do the Aproach 2 in Visual studio 2010 and it did not worket.

How it works in 2010?

Anonymous said...

Approach 2 also requires the line:

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

at the top of your content page.

Anonymous said...

not work, the property or control is good but not transfier de value
from masterpage to contentpage.

Anonymous said...

Code From MasterPage:
Protected Sub btnSearch_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles btnSearch.Click
Me.FilterColumn = Me.cboFilter.SelectedValue
Me.FilterValue = Me.txtFilter.Text

Code From ContentPage(frmSquareView.aspx):
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Me.FilterColumn = Me.Master.FilterColumn
Me.FilterValue = Me.Master.FilterValue

Anonymous said...

send value from ContentPage to MasterPage is correct.
Me.Master.ptyFilterValue = "TEST"

Fk Leung said...

I have tried Approach 2, and it worked..
I used some javascript at the master page, and manage to change the text value at the master page.. (The screen showed that the value at the master page changed)
When I access the value from the content page using approach 2, the value was still the original value. (meaning that it did not change)..