If you use ASP.net masterpages then sooner or later you will have discovered that you cannot access your masterpage properties using Page.Master or simply Master.
Previously I have used the solution you see floating around a lot, that is to put the following in your content page aspx (assuming our masterpage is called Main.master):
<%@ MasterType VirtualPath="~/Main.master" %>
And the following in your code behind for example:
Master.BodyClass = "pgKeyboard";
It works fine, although for every new page you make you need to remember to add the MasterType declaration, which has always frustrated me.
So the other day I realised, obvious though it was once I had, that I could drop the MasterType declaration and simply cast the Master object to the correct type.
((Main)Master).BodyClass = “pgKeyboard”;
So if you can’t access your masterpage properties or methods, just remember you need to cast the Master object into your masterpage type.