好的,这是一种奇怪的方式,我知道我应该在使用母版页时在每个页面的Page_Load上完成它,但有没有解决这个问题的方法?如果我可以帮助它,我不想重建页面,如果我只能在<asp:content></asp:content>
上插入标题,那就更容易了。
如果有人碰到这个或者可能有一个好方法的建议,我知道jquery可以做到document.title =''但我听说它不是SEO友好。
谢谢!
答案 0 :(得分:14)
您仍然可以在使用母版页的每个页面中设置标题。在标记中: -
<%@ Page Title="Your Title" Language="C#" MasterPageFile="~/_masterpages/... etc
或代码: -
protected override void OnLoad(EventArgs e)
{
Page.Title = "Your Title";
base.OnLoad(e);
}
答案 1 :(得分:7)
您可以在主页中放置内容占位符作为..
<asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder>
之后在内容页面中将其引用添加为..
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<title> Your title goes here. </title>
</asp:Content>
答案 2 :(得分:3)
Master页面中更简单的解决方案 &lt;%:Page.Title%&gt; - 主标题就在这里
在内容页面的第一行 &lt;%@ Page Title =&#34;您的标题&#34;语言=&#34; C#&#34; MasterPageFile =&#34;〜/ _masterpages / ... etc
答案 3 :(得分:1)
我知道这是一个较旧的问题,但对我来说绝对有效的方法是在MasterPage的标题标签中设置一个Literal控件,如下所示:
<title><asp:Literal runat="server" id="pagetitle" Text="MyTitle"></asp:Literal></title>
然后,在内容页面中,将其放在Page_Load方法中:
Literal myTitleLiteral = (Literal)Master.FindControl("pagetitle");
if (myTitleLiteral != null)
{
myTitleLiteral.Text = "Test Title";
}