2016-06-27 23 views
0

Ich habe eine Masterpage zu meinem Projekt hinzugefügt, und jetzt, wenn ich versuche, dieses Masterpage auf eine Seite zu erben, erhalte ich diese Fehlermeldung:Master Ausgabe - ASP.NET Webform

‚Content Kontrollen haben Top-Level sein Steuerelemente in einer Inhaltsseite oder einer geschachtelten Gestaltungsvorlage, die auf eine Gestaltungsvorlage verweist. "

master_page.Master:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="master_page.master.cs"Inherits="KitchenCounter.master_pages.MasterPage"%> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
     <asp:Content runat="server" ContentPlaceHolderID="MainContent"> 
     <asp:ContentPlaceHolder ID="head" runat="server"> 
     </asp:ContentPlaceHolder> 
     </asp:Content> 
</head> 
<body> 
    <asp:Content runat="server" ContentPlaceHolderID="MainContent"> 
     <asp:ContentPlaceHolder ID="MainContent" runat="server"> 
      <div class="menuBar"> 
       <ul> 
        <li class="hvr-bounce-to-bottom active"><a>Home</a></li> 
        <li class="hvr-bounce-to-bottom"><a href="../account/account.aspx">Account</a></li> 
        <li class="hvr-bounce-to-bottom"><a href="../recipes/recipes.aspx">Recipes</a></li> 
        <li class="hvr-bounce-to-bottom"><a href="../contact/contact.aspx">Contact</a></li> 
       </ul> 
      </div> 
     </asp:ContentPlaceHolder> 
    </asp:Content> 
</body> 
</html> 

Index.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="KitchenCounter.pages.Index" MasterPageFile="~/kitchencounter/master_pages/master_page.Master"%> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Kitchen Counter | Home</title> 
    <link rel="stylesheet" href="kitchencounter/css/main.css" /> 
</head> 
<body> 

</body> 
</html> 

Irgendwelche Ideen, wo damit beginnen? Jede Hilfe wird geschätzt.

Antwort

0

Die Idee hinter einer Musterseite mit Inhaltsseiten besteht darin, dass Ihre Musterseite Elemente enthält, die auf jeder (oder der meisten) Seite Ihrer Site erscheinen sollten. Platzhalter sind dort vorhanden, wo eine Inhaltsseite die für diese Seite spezifischen Informationen enthält. Unter Berücksichtigung dieser Prämisse gibt es einige Dinge zu ändern:

  1. Sie legen die Inhaltssteuerelemente in der Masterseite; Sie müssen auf die Inhaltsseite gehen, was in Ihrem Fall Index.aspx ist.
  2. Darüber hinaus sollte Ihre Inhaltsseite nur als Top-Level-Steuerelement-Tags enthalten sein - Sie verwenden das ContentPlaceHolderId-Attribut, um den Inhalt innerhalb der Tags auf Ihrer Content-Seite den Orten zuzuordnen, an denen der Content auf der Masterseite liegt.
  3. Schließlich muss Ihre Markup für Ihre Navigationsleiste außerhalb des Steuerelements auf Ihrer Masterseite sein. Die Kontrolle ist nur das - ein Platzhalter; nichts geht hinein.

    Also versuchen Sie dies:

master_page.Master:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="master_page.master.cs"Inherits="KitchenCounter.master_pages.MasterPage"%> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <asp:ContentPlaceHolder ID="head" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <div class="menuBar"> 
      <ul> 
       <li class="hvr-bounce-to-bottom active"><a>Home</a></li> 
       <li class="hvr-bounce-to-bottom"><a href="../account/account.aspx">Account</a></li> 
       <li class="hvr-bounce-to-bottom"><a href="../recipes/recipes.aspx">Recipes</a></li> 
       <li class="hvr-bounce-to-bottom"><a href="../contact/contact.aspx">Contact</a></li> 
      </ul> 
     </div> 
    <asp:ContentPlaceHolder ID="MainContent" runat="server"> 
    </asp:ContentPlaceHolder> 
</body> 
</html> 

Index.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="KitchenCounter.pages.Index" MasterPageFile="~/kitchencounter/master_pages/master_page.Master"%> 

<asp:Content runat="server" ContentPlaceHolderID="head"> 
    <title>Kitchen Counter | Home</title> 
    <link rel="stylesheet" href="kitchencounter/css/main.css" /> 
</asp:Content> 
<asp:Content runat="server" ContentPlaceHolderID="MainContent"> 
    The text that is specific for your Index page goes here. 
</asp:Content>