2010-08-12 4 views
3

J'essaie d'utiliser une page maître dans mon site Web. J'ai créé une page et ensuite créé le maître. J'ai ensuite ajouté le tag MasterPageFile = "~/master". Je devine que je dois faire quelque chose sur ma page principale, parce que je l'ai maintenant commencé à obtenir l'erreur:ASP.NET MasterPageFile provoquant une erreur

The page contains markup that is not valid when attached to a master page 

Ma page principale est la suivante:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" MasterPageFile="~/my.master" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

    </div> 
    </form> 
</body> 
</html> 

J'ai essayé de supprimer le tag en pensant que cela pourrait être le problème. Est-ce que quelqu'un peut-il me montrer la bonne direction?

Répondre

5

Vous devez modifier vos sections body à content. La page maître fonctionne avec contentplaceholders: vos pages de contenu doivent fournir le contenu de ces espaces réservés. See the msdn page on this topic.

Quoted de ce lien ci-dessus, votre page principale pourrait contenir les éléments suivants:

<td><asp:contentplaceholder id="Main" runat="server" /></td> 

qui la page de contenu remplirait en fournissant les éléments suivants

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

Notez que j'ai inclus la déclaration principale en haut de la page de contenu.

1

Les pages qui contiennent la page principale doivent avoir un <asp:Content comme racine. cela signifie pas tag html pas doctype etc.