如何以编程方式更改MasterPageFile

时间:2011-10-04 16:57:12

标签: c# asp.net master-pages

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

<%@ 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 个答案:

答案 0 :(得分:10)

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

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