asp.net在一个项目中有多个非嵌套的masterpages

时间:2010-10-02 22:05:17

标签: c# asp.net html css

我在c#中使用visual studio 2010构建了一个asp.net网站。该网站基本上有两个部分:http://www.wsgelectronics.com供参考。

默认页面是default.aspx的site.master页面。我想分成两个主页面,每个部分一个,汽车音频和计算机部分,如果你看看网站,每个都有自己的布局,导航栏,内容等。

我如何将它们联系起来工作?我可以在一个项目上有三个 * .master页面吗?我没有选择嵌套的原因,他们将是完全不同的布局,但我找不到任何关于在一个站点上链接不同母版页的教程。甚至可以这样做吗?

2 个答案:

答案 0 :(得分:4)

是的,您可以在给定的网站中拥有所需数量的母版页。当您在站点中创建Web表单(常规.aspx页面)时,会出现“选择主页”的复选框,因此请确保已选中。然后,当您选择所需的母版页时,Studio将为您的页面存根所需的标记以使用该母版页。

例如,这是一个Web表单的存根,在同一目录中有一个名为MasterPage.master的主服务器。相关部分是:

  1. 在Page指令中,属性MasterPageFile显示了母版页的应用程序相对路径。
  2. 母版页可以有许多ContentPlaceHolder类型的服务器控件。这允许您控制页面中标记的显示位置。我在此示例中使用的母版页有两个,一个名为head,另一个名为ContentPlaceHolder1。同样,这些控件在我的母版页中定义。
  3. 示例标记:

    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    </asp:Content>
    

    有关详细信息,请参阅asp.net上的Master Page Tutorials

答案 1 :(得分:1)

是的,您可以使用多个母版页,但一次应该引用一个母版页。 您可以通过在页面生命周期的pre_Init事件中指定母版页来在代码隐藏处继承多个母版页。

您需要做的就是在内容页面上定义一个属性,该属性将在pre_Init事件中设置所需的主页面,这可能是一个会话变量,使其成为动态。