asp:contentplaceholderの一部として設定された後のPage.Titleの参照
-
05-07-2019 - |
質問
次のように、titleタグ内にcontentplaceholderコントロールを含むマスターページのセットアップがあります:
<head id="head1" runat="server">
<style type="text/css">
body { font-family: Tahoma; font-size: 9pt; }
</style>
<title><asp:contentplaceholder id="title" runat="server" /></title>
</head>
そのcontentplaceholderは、そのマスターページを使用するページ内で実装されます:
<asp:content runat="server" contentplaceholderid="title">
Welcome: <%= this.BasketID %>
</asp:content>
次に、マスターページの本文内で置換タイトルのコピーを取得しようとしています(ページ内でも試されました-これも機能しません):
<p>
<strong>Subject:</strong> <%# Page.Title %>
</p>
すべての場合で、Page.Title
とPage.Header.Title
は""
です(データバインディングと<%= %>
構文を使用して両方を試してみました。
ここで何が起こっているのか、どうすればこれを克服できるのか誰にもわかりますか?
ありがとう。
解決
発生している問題は、ページサイクルを「トリック」しているためです。ページのコードビハインドでこれを使用することをお勧めします。
Master.Title = "Welcome: " + basketId
ただし、この方法でも可能です。マスターページで:HtmlTextWriterを作成し、MemoryStreamに書き込むように構成します。 「タイトル」コンテンツプレースホルダーをHtmlTextWriterにレンダリングし、StreamReaderをストリームにアタッチしてコンテンツを文字列として取得し、これをページに出力します。しかし、これは効率的ではなく、あまりにも多くの作業が必要です:-)
所属していません StackOverflow