ASP.NET从代码背后设置页面标题

我正在使用ASP.NET C#创建数据驱动页面,并希望使用后面的代码动态设置页面标题

 

我尝试在页面中使用较低的单独标题标签,但这也不起作用。 任何人都可以建议如何做到这一点。

 using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace MyApplication { public partial class _Default : Page { protected void Page_Load(object sender, EventArgs e) { this.Title = "Title of my page"; } } } 

您可以从aspx.cs (文件后面的代码)修改上面的页面标题。

如果要直接在.aspx文件中执行此操作,请尝试以下操作:

 <% this.Title = "Some Title" %> 

如果你在@Page指令中正确设置了你的Language = "C#" ,这就行了,我知道你做了。

来自MSDN的页面类引用

Page有一个Title属性 :

 protected void Page_Load(object sender, EventArgs e) { this.Title = "Title"; } 

您应该从aspx页面中删除Title =“”。 它将覆盖代码隐藏中的标题集

 <%@ Page Language="C#" MasterPageFile="~/FLMaster.master" AutoEventWireup="true" CodeFile="legal-expenses-insurance-news-item.aspx.cs" Inherits="legal_expenses_insurance_news_legal_expenses_insurance_news_item" %> 
    protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { this.Title = "Title"; } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { this.Title = "Title"; } } 

我知道这是一个旧线程,但我发现Page.Title并不总是被覆盖,但是Page.Header.Title可以(大部分)……所以我对Master代码隐藏的动态标题标签的解决方案是:

  if (Page.Header != null) { if (Page.Header.Title == null || !Page.Header.Title.Contains("COMPANYNAME")) { var otitle = Page.Header.Title; if (otitle == null || otitle.Length==0) { var textinfo = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo; otitle = textinfo.ToTitleCase(this.Parent.GetType().Name.Replace("_"," ").Replace("aspx","")); } Page.Header.Title = "COMPANYNAME" + " - " + otitle; } Page.Header.Title = Page.Header.Title.Replace("COMPANYNAME", Auth.getSetting("companyName")); }