2010-11-16 2 views
0

Это код вложенной главной страницы в моем проекте:Содержание веб-формы не позволяет добавлять содержимое

<%@ Master Language="C#" MasterPageFile="~/Presentation_Layer/Pages/home.Master" AutoEventWireup="true" CodeBehind="cmsNestedMasterPage.master.cs" Inherits="livetest.Presentation_Layer.Pages.cmsNestedMasterPage" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 

</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
    <div id="divMenuSideBarLeft" class="MainSideBar1Div" style="top: 2px" 
     title="LiveTest CMS Menu"> 
    </div> 

<div id="divCmsContent" class="MainContentDiv" title="divCmsContent" 
     style="background-color: ButtonFace; width: 791px; left: 203px; position:relative; top: -602px;"> 
    </div> 
</asp:Content> 

Я следующие запросы:

  1. Первый ContentPlaceHolderContentPlaceHolderID="head", что это для? Оба значения ContentPlaceHolder s были добавлены автоматически, когда я добавил эту вложенную главную страницу в мой проект.
  2. Во втором ContentPlaceHolder с ContentPlaceHolderID="ContentPlaceHolder1", я добавил два div s. Один из них заключается в отображении боковой панели слева, а другой - в том, где я собираюсь показать формы для входа. Проблема заключается в том, что когда я добавил новый Web Content Form и связал его с этой главной страницы, она имеет только один заранее написанную строку:
<%@ Page Title="" Language="C#" 
    MasterPageFile="~/Presentation_Layer/Pages/cmsNestedMasterPage.master" 
    AutoEventWireup="true" CodeBehind="BookEntry.aspx.cs" 
    Inherits="livetest.Presentation_Layer.Pages.CMS.BookEntry" %> 

код не отображается никаких ContentPlaceHolder с. Даже если я попытаюсь добавить один, он дает ошибку:

The page has one or more <asp:Content> controls that do not correspond with <asp:ContentPlaceHolder> controls in the Master page.

Как исправить эту ошибку?

ответ

1

Вам необходимо добавить ContentPlaceHolders к вложенному MasterPage внутри элементов Content. например

MasterPage 1:

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 

</asp:ContentPlaceHolder> 

Уплотненный MasterPage:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 

    <div id="divMenuSideBarLeft" class="MainSideBar1Div" style="top: 2px" title="LiveTest CMS Menu"> 
    </div> 

    <div id="divCmsContent" class="MainContentDiv" title="divCmsContent" style="background-color: ButtonFace; width: 791px; left: 203px; position:relative; top: -602px;"> 
     <-- Content on page goes inside this ContentPlaceHolder --> 
     <asp:ContentPlaceHolder ID="cphCmsDiv" runat="server"> 
     </asp:ContentPlaceHolder> 
    </div> 

</asp:Content> 

Затем добавьте соответствующие Content элементы на странице (они будут автоматически добавлены новые страницы):

<asp:Content ID="Content3" ContentPlaceHolderID="cphCmsDiv" runat="server"> 

</asp:Content> 
+0

Это означает, что приведенный выше ContentPlaceHolderID соответствует Nested Master Page. – RKh

+0

@RPK - да cphCmsDiv соответствует идентификатору ContentPlaceHolder во вложенной главной странице. Отредактировал свой ответ, чтобы показать более полный пример –