Masterpage mit ASP.NET wird nicht im IE7 angezeigt



  • Hallo.

    Ich habe mir mittels dieses Tutorials http://www.asp.net/learn/master-pages/tutorial-01-vb.aspx eine Matserpage erstellt, genau wie beschrieben.
    Mein Problem ist nun, das sie mir zwar in der Entwurfsansicht in VS 2008 Pro angezeigt wird, nicht aber wenn ich sie mit mittels F5 im IE anzeigen lassen will. Die IE Seite ist einfach leer.
    Kann mir jemand aus dem Stehgreif sagen warum das so ist?

    Hier nochmal der code der "Site.master", auch wenn er gleich sein sollte mit dem aus dem Tutorial.

    <%@ Master Language="VB" CodeFile="Site.master.vb" Inherits="Site" %>
    
    <!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">
    <head runat="server">
        <title>Unbenannte Seite</title>
        <asp:ContentPlaceHolder id="head" runat="server">
        </asp:ContentPlaceHolder>
        <link href="Styles.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <form id="form1" runat="server">
            <div id="topContent">
                <a href="Default.aspx">Master Pages Tutorials</a>
            </div>
    
            <div id="mainContent">
                <asp:ContentPlaceHolder id="MainContent" runat="server">
                </asp:ContentPlaceHolder>
            </div>
    
            <div id="leftContent">
                <h3>Lessons</h3>       
                <ul>
                    <li>TODO</li>
                </ul>
    
                <h3>News</h3>       
                <ul>
                    <li>TODO</li>
                </ul>
            </div>
    
            <div id="footerContent">
                <img src="Images/logo.bmp" alt="Powered by ASP.NET!" />
            </div>
        </form>
    </body>
    </html>
    


  • Die Seite Default.aspx wir auf sicher angezeigt.
    Die Masterpage wird auch nicht angezeigt.
    Du musst die Default.aspx von der Masterpage ableiten.



  • Ok hab ich gemacht. Nun sagt er mir aber

    [HttpException (0x80004005): Auf einer Inhaltsseite oder einer geschachtelten Masterseite, die auf eine Masterseite verweist, muss es sich bei Inhaltssteuerelementen um Steuerelemente der obersten Ebene handeln.]
    System.Web.UI.MasterPage.CreateMaster(TemplateControl owner, HttpContext context, VirtualPath masterPageFile, IDictionary contentTemplateCollection) +8665016
    System.Web.UI.Page.get_Master() +51
    System.Web.UI.Page.ApplyMasterPage() +15
    System.Web.UI.Page.PerformPreInit() +45
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +282

    In meiner Deafult.aspx steht nur drin

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" MasterPageFile="~/Site.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">
    <head runat="server">
        <title>Unbenannte Seite</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <h1>Test das ist die default seite</h1>
        </div>
        </form>
    </body>
    </html>
    

    In der Deafult.aspx.vb

    Partial Class _Default
        Inherits System.Web.UI.Page
    
    End Class
    

    Mit der Inhaltsseite bei der Exception meiner er doch sicher meine Default.aspx!?



  • wenn du scxhon VS hast dann macht eine neue Webseite. (Projekt)
    Dort erstellst du nun eine Masterpage.
    Dann erstellst du eine ASPX. Da wirst du gefragt ob die eine Masterpage haben soll. Die Frage dann mit Ja beantworten und die Masterpage auswählen.
    Nun hast du genau das was gefordert ist.



  • Das ist am einfachsten.
    Trotzdem mal kurz, warum das nicht klappt:

    Du hast 2 ContentPlaceHolders. Wie soll man bei dir erkennen, was wo rein soll?
    Du brauchst noch Bereiche, die das kennzeichnen und zwar sowas:

    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
    Inhalt 1
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> 
    Inhalt 2
    </asp:Content>
    

    Wobei deine ContentPlaceHolders noch entsprechende contentplaceholderIds brauchen.



  • ok, hat soweit alles hingehauen.

    @Jockelx

    danke für die logische erklärung.



  • Ich denke, dass diese Informationen ist die beste.


Anmelden zum Antworten