make two master pages named Dynamic1.master and Dynamic2.master.
and then use profile properties to get access the master pages.
<configuration>
<system.web>
<profile>
<properties>
<add
name="MasterPageFile"
defaultValue="Dynamic1.master" />
</properties>
</profile>
</system.web>
</configuration>
then make a content page for dynamic1.master like this.
<asp:Content
ID="Content1"
ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
Select a Master Page:
<ul >
<li>
<a href="DynamicContent.aspx?master=Dynamic1">Dynamic Master 1</a>
</li>
<li>
<a href="DynamicContent.aspx?master=Dynamic2">Dynamic Master 2</a>
</li>
</ul>
</asp:Content>
masterpage can only be call in preinit event.
protected void Page_PreInit(object sender, EventArgs e)
{
if (Request["master"] != null)
{
switch (Request["master"])
{
case "Dynamic1":
Profile.MasterPageFile = "Dynamic1.master";
break;
case "Dynamic2":
Profile.MasterPageFile = "Dynamic2.master";
break;
}
}
MasterPageFile = Profile.MasterPageFile;
}