3

マスター ページがあり、プレースホルダーを 2 回追加したい - マスター ページの 2 つの場所に同じプレースホルダーがあり、実際のページがプレースホルダーのコンテンツを 1 回だけ指定し、そのコンテンツが結果のページに 2 回レンダリングされるようにします。目標は、コンテンツの重複を避けることです。

同じ ID のプレースホルダーを 2 回追加しようとすると、コンパイルされません。ASP.NET はそれを好みません。

どうすればそれを達成できますか?他のオプションは何ですか?

4

3 に答える 3

2

プレースホルダーを に配置しAction、必要に応じて呼び出します。

<%
    Action myPlaceholder = () =>
    {%>
        <asp:ContentPlaceHolder ID="X" runat="server" />
    <%}
%>

...次に、コード内の必要な場所で呼び出します。

<% if (conditionMet)
    myPlaceholder(); >%

エラーはコンパイル時に発生します。同じ ID を持つプレースホルダーが存在する場合、苦情が発生します。このアプローチはそのハードルをクリアし、多くの柔軟性を提供します。

于 2016-09-18T13:58:02.520 に答える
1

おそらくユーザーコントロールを探していると思います:

http://msdn.microsoft.com/en-us/library/y6wb1a0e.aspx

ユーザー コントロールを使用すると、マークアップとコード ビハインドを に追加し、.ascxこれをマスター ページ/Web フォームで複数回呼び出すことができるため、コードの重複を回避できます。

于 2011-11-03T15:35:41.010 に答える
0

私はこれを試していませんが、複製したいプレースホルダーの内容を調べて、コード ビハインドにコピーすることができます。この投稿: http://programcsharp.com/blog/archive/2009/01/22/test-if-masterpage-contentplaceholder-has-content-or-is-empty.aspx

マスターページの操作について、ある程度の洞察があります。

于 2011-11-03T15:33:37.563 に答える