ASP.NET MVC вложенные главные страницы, наследовать контент - PullRequest
5 голосов
/ 19 августа 2010

У меня есть ряд вложенных главных страниц, например:

site.master:

<asp:ContentPlaceHolder ID="SearchFormContent" runat="server">
<%Html.RenderPartial("SearchFormControl"); %>
</asp:ContentPlaceHolder>

на вложенной (дочерней) главной странице, area.master

<asp:Content ContentPlaceHolderID="SearchFormContent" ID="SearchFormContentContainer" runat="server">
<asp:ContentPlaceHolderID="SearchFormContent" runat="server"/>
</asp:ContentPlaceHolder>

У меня есть две отдельные страницы контента.Один хочет добавить свой собственный контент в SearchFormContent, другой хотел бы сохранить контент, который был определен на главной странице верхнего уровня.Конечно, поскольку дочерняя главная страница определяет содержимое для блока SearchFormContent, так что дочерние страницы могут потенциально получить к нему доступ, содержимое, определенное на главной странице верхнего уровня, стирается.

Есть ли способ сделать это?

Ответы [ 3 ]

1 голос
/ 20 августа 2010

Я не могу думать ни о чем другом, кроме следующего на главной странице вашего ребенка

<asp:Content ContentPlaceHolderID="SearchFormContent" ID="SearchFormContentContainer" runat="server">
    <asp:ContentPlaceHolder ID="SearchFormContent" runat="server">
        <%Html.RenderPartial("SearchFormControl"); %>
    </asp:ContentPlaceHolder>
</asp:ContentPlaceHolder>

Неприятно, я знаю, но это единственный способ, с помощью которого я могу думать при использовании главных страниц.

HTHS
Charles

1 голос
/ 20 августа 2010

вы можете поместить контент в contentPlaceHolder на главной странице.это будет отображаться по умолчанию, если вы не переопределяете содержимое на дочерней странице.

1 голос
/ 19 августа 2010

Удалите все свои ContentPlaceHolder с и оставьте SearchFormControl прямо на сайте site.master. Если вы никогда не хотите переопределять SearchFormControl, вам не нужно определять ControlPlaceHolder s

...