网页标题一般包含站点名称,通常情况下,站点名称是直接写在 <title> 标签中的,这样如果网站名称变了后,有多少网页就要改多少网页,不是很方便。可以将站点名称存储在 web.config 的 appSettings 中。
web.config
.aspx 页面
为便于后面描述,我们把上述的代码称为“代码一”。其输出的 HTML 为:
或者您也想除了站点名称,还得加上网页标题,形如:“用户管理 - ITPOW”、“文档管理 - ITPOW”……
要实现上面的效果,如下做法是不对的:
为便于后面描述,我们把上述的代码称为“代码二”。运行上述代码后,查看源码,您会发现“用户管理 - ”并没有在 <title> 中出现。
上述代码是错误的用法,运行上述代码后,查看源码,您会发现结果为:用户管理 - <%$ AppSettings:SiteName %>。
您应该这样做:
为便于后面描述,我们把上述的代码称为“代码三”。
几点解释
为什么“代码一”运行后,<title> 标签不在一行,而是占据了几行呢?
这是由于 <head> 标签有 runat="server" 属性的原因,如果去掉 header 的 runat="server",就不会自动分隔为几行了。
为什么“代码二”的“用户管理 - ”显示不出来?
这是由于 <head> 标签有 runat="server" 属性的原因,如果去掉 header 的 runat="server",就会显示了,此时效果和代码三相同。
同理,如果是 <body> 中的“用户管理 - <asp:Literal runat="server" Text='<%$ AppSettings:SiteName %>'></asp:Literal>”,其“用户管理 - ”也会显示出来。
也就是说如果 <head> 有 runat="server",并且 <title> 中有服务器端控件(比如:asp:Literal),那么,直接写在 <title> 中的文本就显示不出来。
相关阅读