我一直在尋找網絡,沒有找到任何答案(有堆棧溢出,但他們似乎沒有得到答案或相同),所以我想我'我構成了我自己的一個。它圍繞嵌套的母版頁和訪問祖父母母版主內容的PlaceHolder的內容頁面進行,即使它不是在父嵌套母版中重新曝光。我想知道這是不可能的。在母版頁中訪問祖父母內容佔位符
核心的Site.Master
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>
<asp:ContentPlaceHolder ID="TitleContent" runat="server">
<%= Html.GlobalModel().PageTitle %>
</asp:ContentPlaceHolder>
</title>
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
<link rel="shortcut icon"
href="<%= ViewContext.ClientContent("Content/Tiki.ico") %>"
type="image/x-icon"/>
</asp:ContentPlaceHolder>
</head>
<body>
<asp:ContentPlaceHolder ID="SiteContent" runat="server"/>
</body>
</html>
嵌套的Site.Master(注意TitleContent和HeadContent怎麼沒有定製,所以從核心的Site.Master '默認' 的內容應採取影響)
<%@ Master Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewMasterPage" %>
<asp:Content ContentPlaceHolderID="SiteContent" runat="server">
<asp:ContentPlaceHolder ID="SiteContent" runat="server">
<h1>Nested Header</h1>
<asp:ContentPlaceHolder ID="NestedContent" runat="server"/>
</asp:ContentPlaceHolder>
</asp:ContentPlaceHolder>
ContentView.aspx(引用嵌套的Site.Master,企圖TitleContent更換將無法正常工作。)
<%@ Page Language="C#" MasterPageFile="Site.Master" %>
<asp:Content ContentPlaceHolderID="NestedContent" runat="server">
<p>Nested content. This will work.</p>
</asp:Content>
<asp:Content ContentPlaceHolderID="TitleContent" runat="server">
Nested Title. This will **not** work.
</asp:Content>
既然你使用MVC,看看剃刀。處理這類事情要好得多。在webforms中,我還沒有找到令人滿意的解決方案。 –
你應該在下面寫下Jon Adams的答案。它可能不是很漂亮,但這就是我們所堅持的...... – McGuireV10
嗯,我可以給他信任,但實際上,代碼的「重複」是我們最終的結果,並不是我真正希望得到的答案對於。但我想「否」的答案是一個有效的答案。當我們有時間遷移到Razor的時候,我必須檢查他們的支持。 – Terry