在将其设置为asp:contentplaceholder的一部分后引用Page.Title

时间:2009-09-11 09:25:42

标签: c# asp.net data-binding master-pages

我在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.TitlePage.Header.Title都是""(我已经尝试过数据绑定并使用<%= %>语法无效。

有谁知道这里发生了什么以及如何克服这个问题?

感谢。

1 个答案:

答案 0 :(得分:1)

您遇到的问题是因为您“欺骗”了页面循环。你最好在页面的代码隐藏中使用它:

Master.Title = "Welcome: " + basketId

你可以这样做;在masterpage上:创建一个HtmlTextWriter,将其配置为写入MemoryStream。将“title”contentplaceholder呈现给HtmlTextWriter,将StreamReader附加到流以将内容作为字符串抓取,并将其输出到您的页面。然而,这不是有效的,而且工作太多了: - )