0

私はasp.netから始めたばかりで、マスターページの作成方法に関するチュートリアル、http://www.asp.net/web-forms/videos/に従いました。しかし、チュートリアルに従っても、まだ機能させることができませんでした。ビデオで使用されているのと同じテンプレートも使用しました。

私が持っているコードは、ビジュアル スタジオのウィザードを通じて自動生成されます。

より具体的には、チュートリアルで使用したテンプレートからの css を含む単純なページだけで、エラー メッセージが表示されません。div にはメニューがあり、残りは画面に表示されません。(最初に書いておくべきでした)

マスターページから:

<asp:ContentPlaceHolder ID="MenuContentPlaceHolder" runat="server">
    <div id="header">
            <p> <a href="#">Link 1</a> . <a href="#">Link 2</a> . <a href="#">Link 3</a> . <a href="#">Link 4</a></p>
        </div>

        <div id="subheader">
                <p>Apple Core 1.0</p>
        </div>

        <div id="menu">
                <p><a href="#">Menu 1</a> <a href="#">Menu 2</a> <a href="#">Menu 3</a> <a href="#">Menu 4</a> <a href="#">Menu 5</a> <a href="#">Menu 6 </a></p>
        </div>
    </asp:ContentPlaceHolder>

default.aspx から

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2.Default" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MenuContentPlaceHolder" runat="server">
    <br />
<h1>Hey</h1>
</asp:Content>

奇妙なことに、default.aspx からコンテンツ タグを完全に削除すると、画面にメニューを表示できるようです。

4

2 に答える 2

1

私はあなたがこのようなことを試してみるべきだと思います

あなたのマスターページ

<div id="header">
    <p> <a href="#">Link 1</a> . <a href="#">Link 2</a> . <a href="#">Link 3</a> . <a href="#">Link 4</a></p>
</div>

<div id="subheader">
    <p>Apple Core 1.0</p>
</div>

<div id="menu">
    <p><a href="#">Menu 1</a> <a href="#">Menu 2</a> <a href="#">Menu 3</a> <a href="#">Menu 4</a> <a href="#">Menu 5</a> <a href="#">Menu 6     </a></p>
</div>

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

</asp:ContentPlaceHolder>

**マスターページのコンテンツプレースホルダーの外にメニューコードを配置します

あなたのaspxページ

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs"     Inherits="WebApplication2.Default" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MenuContentPlaceHolder" runat="server">
    <br />
<h1>Hey</h1>
</asp:Content>
于 2012-09-30T12:35:54.337 に答える
0

あなたがしていることは、MasterPageContentPage の両方のタグ内に HTML を配置して、MasterPage コンテンツをオーバーライドしていると思います。これは実際には、MasterPage の概念の機能です。ページに標準的なものが必要であるが、特定のページでそれを置き換える機能が必要な場合は、コンテンツを PlaceHolder に配置し、ページに何か異なる代替コンテンツを提供します。(あるいは、「ContentPage に何も提供されていない場合は、この既定のコンテンツを使用する」と考えることができます)。PlaceHolder

コンテンツ タグを削除したときにメニューが表示されるようにすることについてのコメントは、MasterPage からコンテンツを置き換えるカスタム タグを削除したためです。特定の MasterPage を使用するすべてのページに常に必要なコンテンツがある場合は、そのコンテンツを PlaceHolder 内ではなく MasterPage に配置します。

于 2012-09-30T12:31:13.703 に答える