Asp.net 在重写的OnPreRender中更改标题

Asp.net 在重写的OnPreRender中更改标题,asp.net,Asp.net,在重写的OnPreRender函数中,我可以修改标签的文本:Label1.text='in OnPreRender' 但是,我无法在OnPreRender中执行此.Header.Title='changed' 更改浏览器标题的唯一方法是执行以下操作: this.Controls.Remove(this.Controls[0]); this.Controls.AddAt(0, new LiteralControl("<html><head><title>ch

在重写的OnPreRender函数中,我可以修改标签的文本:
Label1.text='in OnPreRender'

但是,我无法在OnPreRender中执行
此.Header.Title='changed'

更改浏览器标题的唯一方法是执行以下操作:

this.Controls.Remove(this.Controls[0]);  
this.Controls.AddAt(0, new LiteralControl("<html><head><title>changed in OnPreRender</title></head></html>")
this.Controls.Remove(this.Controls[0]);
this.Controls.AddAt(0,新的LiteralControl(“在OnPreRender中更改”)

为什么我不能像更改标签一样更改标题?还没有呈现任何内容…

因此,现在,甚至不需要像Partario建议的那样将runat=“server”添加到标题标记中,我就可以在Page_PreRender和OnPreRender中调用this.Header.Title

它不起作用,因为我没有注释另一个代码('this.Controls…'),它显然优先

因此,结果是,如果您确实删除了第一个LiteralControl,并像我最初那样添加了一个新控件,那么您就不能调用此.Header.Title。

标记上是否有runat=“server”属性?