简短回答:(这取决于您的需要)。我会解释的。
长答案:
这是我的观察(通过一个小测试):
我设置title
在Page directive
:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="Exampales_test" Title="ppppppppp" %>
我还通过以下方式设置html
:
<head runat="server" ID="hhh">
...
<title runat="server">fffffffff</title>
</head>
我有这个测试代码:
protected override void OnPreInit(EventArgs e)
{
// <----- breakpoint here (A)
base.OnPreInit(e);
// <----- breakpoint here (B)
}
protected void Page_Load(object sender, EventArgs e)
{ // <----- breakpoint here (C)
this.Title = "cccccccc";
}
视觉的 :
现在让我们看看:
当我按下Run
:
该页面确实具有 html 标题值 ( ffffff
)
也在最后PreInit
调查OnInit
它已经改变的节目(以{如果你想确切地知道在哪个阶段 - 这可以做到}的方式) ppppppppp
当然,最后一个事件(在我们讨论过的内容中)是page_load
: 它确实改变了值:
值为:
那么选择哪个?
如果您的代码正在Title
动态更改(我的意思是在运行时),请不要使用 html 标记或 page 指令。
例如,如果您的代码(例如)有 ASCX 并且 ACSX 应该更改标题,那么只需使用代码(不是指令也不是 html 标记)。
正如您已经注意到的 - 获胜的价值是最后发生的人(时间线)
它以 html 标记值开始,但随后服务器端代码开始激活并更改值。