如何以编程方式更改MasterPageFile

use*_*502 4 c# asp.net master-pages

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

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

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server">
   </asp:Content>
Run Code Online (Sandbox Code Playgroud)

现在这里是我遇到的问题..这是一个网站内另一个母版页的副本,但我有多个网站将使用它,我只是想让它共同但我仍然想要访问". .sales/sales.master"问题是,这是在每个站点文件夹中,例如

Web/
mySite1
   sales
     sales.master
mySite2
   sales
     sales.master
Run Code Online (Sandbox Code Playgroud)

但是现在我需要一个能为所有人做同样事情的大师

Web/
  All
    mynewmaster.master
  mySite1
     sales
        sales.master
  mySite2
     sales
        sales.master
Run Code Online (Sandbox Code Playgroud)

所以在mynewmaster.master我想打电话给MasterPageFile ="../ sales/sales/master"但是我不能因为1)它找不到它而且2)它不知道要看哪一个..

sales.master拥有我需要的所有css ... +我将添加的其他东西..

Jam*_*son 10

我相信你只能改变主人OnPreInit:

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);    
    Page.MasterPageFile = "MasterPage.master";
}
Run Code Online (Sandbox Code Playgroud)