要管理页面上的页面标题,我在标题中有一个包含ContentPlaceHolder的母版页。
<head runat="server">
<asp:ContentPlaceHolder runat="server" ID="headContent">
</asp:ContentPlaceHolder>
</head>
在我的每个页面上,我添加元标记和页面标题如下:
<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
时,我总是得到一个空标题。
答案 0 :(得分:1)
使用<%Page.Title = "My page title";%>
你隐式告诉 ASP.NET在页面呈现阶段执行此embedded code block。
这是什么意思?在页面渲染阶段之前,您将无法获得此值。假设您试图比渲染期间更早地获得此值。这就是你得到空字符串的原因。
解决方法可能是在页面开头设置Title
指令的<%@ Page
属性,例如:
<%@ Page Title="My Title Goes Here" Language="C#" ... %>
通过设置此项,您将能够比页面渲染时间更早地从主页面访问Page.Title
属性。
答案 1 :(得分:-2)
只需使用
<title>My page title</title>