C# 如何以编程方式更改MasterPageFile

C# 如何以编程方式更改MasterPageFile,c#,asp.net,master-pages,C#,Asp.net,Master Pages,我有一个母版页,这个母版页有以下代码 <%@ Master Language="C#" AutoEventWireup="true" MasterPageFile="../sales/sales.master" %> <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server"> </asp:Content> 但现在我需要一位大师,他将为所有人做同样的事情 W

我有一个母版页,这个母版页有以下代码

<%@ Master Language="C#" AutoEventWireup="true" MasterPageFile="../sales/sales.master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server">
   </asp:Content>
但现在我需要一位大师,他将为所有人做同样的事情

Web/
  All
    mynewmaster.master
  mySite1
     sales
        sales.master
  mySite2
     sales
        sales.master
因此,在mynewmaster.master中,我想调用MasterPageFile=“../sales/sales/master”,但我不能,因为1)它找不到它,2)它不知道看哪一个


sales.master拥有我所需的所有css..+我将添加其他内容。

我相信您只能从
OnPreInit
更改主机:

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);    
    Page.MasterPageFile = "MasterPage.master";
}
protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);    
    Page.MasterPageFile = "MasterPage.master";
}