如何通过编程方式更改主页面文件

4
我有一个主页面,这个主页面有以下代码。
<%@ Master Language="C#" AutoEventWireup="true" MasterPageFile="../sales/sales.master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server">
   </asp:Content>

现在我遇到的问题是,这是站点中另一个母版页的副本,但我有多个站点将使用它,我只想使其对所有站点通用,但仍然想访问“..sales/sales.master”。问题是这在每个站点文件夹内部。例如:
Web/
mySite1
   sales
     sales.master
mySite2
   sales
     sales.master

但是现在我需要一个主人,能够对所有内容做相同的事情。
Web/
  All
    mynewmaster.master
  mySite1
     sales
        sales.master
  mySite2
     sales
        sales.master

在mynewmaster.master中,我想调用MasterPageFile="../sales/sales/master",但我不能这样做,因为1)它找不到它,2)它不知道要查看哪一个。
sales.master拥有所有我需要的CSS和其他东西,我会添加其他内容。
1个回答

10

我认为你只能在OnPreInit中更改主控件:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接