从主页面检索页面标题
问题描述:
为了管理我的页面上的页面标题,我在页眉中有一个带有ContentPlaceHolder的主页面。从主页面检索页面标题
<head runat="server">
<asp:ContentPlaceHolder runat="server" ID="headContent">
</asp:ContentPlaceHolder>
</head>
在我的每个网页,我添加了meta标签和页面标题如下:
<asp:content id="Header" contentplaceholderid="headContent" runat="server">
<meta name="keywords" content="keyword1, keyword2" />
<meta name="description" content="page description" />
<%Page.Title = "My page title";%>
</asp:content>
我无法通过将Page.Title
在页面的OnInit
方法修改页面代码。
我需要访问母版页的代码隐藏中的页面标题,但是当我使用Page.Title
时,我总是会得到一个空标题。
答
使用<%Page.Title = "My page title";%>
你隐含告诉在ASP.NET中的页面的呈现阶段执行该embedded code block。
这是什么意思?在页面呈现阶段之前,您将无法获得此值。假设你想要比渲染过程中早一点得到这个值。这就是为什么你得到空字符串。
的解决方法可能是在设置您的<%@ Page
指令Title
财产在你的页面例如开头:
<%@ Page Title="My Title Goes Here" Language="C#" ... %>
通过设置这一点,你就可以从你的主人页面访问Page.Title
财产发生在页面呈现之前的一点点时间。
答
只需使用
<title>My page title</title>
通过使用此构造,您将设置页面的标题,但是您将无法通过“Page.Title”属性获取此值 – Alex