【问题标题】:ASP.NET Different Layouts within 1 Site一个站点内的 ASP.NET 不同布局
【发布时间】:2011-02-09 21:22:19
【问题描述】:

客户端有一个 ASP.NET 网站,其中包含母版页和布局目录。

我们需要的是网站上的 2 种不同布局。我可以在同一个网站上轻松地拥有两个具有不同母版页的布局吗?

最好的方法是什么?

【问题讨论】:

  • 您是否需要一个母版页用于一组页面,而另一个母版页用于另一组页面,或者您是否需要 2 个不同的母版页和一些逻辑来为您的所有页面选择它们地点?安倍的回答几乎涵盖了第一个,但第二个也是可能的。请参阅此处的第二部分:msdn.microsoft.com/en-us/library/c8y19k6h.aspx
  • 谢谢,我需要第二个。

标签: asp.net layout master-pages


【解决方案1】:

Setting an ASP.NET Master Page at runtime。您可以将任何页面设置为在运行时以编程方式使用任何母版页。

【讨论】:

  • 我就是这样做的。 ASP.NET MVC 还允许通过重载 ViewResult Controller.View(string ViewName, string masterName, object Model) 选择 MasterPage
  • 这种方法的一个缺点是,如果 Page 和 MasterPage 之间存在任何 ContentPlaceHolders 差异,您只能在运行时知道它们。
【解决方案2】:

是的。只需创建两个不同的母版页并将相应的 aspx 页面指向所需的母版页。

例子:

page1.aspx

<% @ Page Language="C#" MasterPageFile="~/Master.master" Title="Content Page 1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Main" Runat="Server">
    Main content.
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="Footer" Runat="Server" >
    Footer content.
</asp:content>

page2.aspx

<% @ Page Language="C#" MasterPageFile="~/secondary.master" Title="Content Page 2" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Main" Runat="Server">
    Main content.
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="Footer" Runat="Server" >
    Footer content.
</asp:content>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多