利用 appSettings 设置站点统一的网页标题

作者:vkvi 来源:千一网络(原创) 日期:2009-11-28

网页标题一般包含站点名称,通常情况下,站点名称是直接写在 <title> 标签中的,这样如果网站名称变了后,有多少网页就要改多少网页,不是很方便。可以将站点名称存储在 web.config 的 appSettings 中。

web.config

<appSettings>
    <add key="SiteName" value="千一网络"/>
</appSettings>

.aspx 页面

<title><asp:Literal runat="server" Text='<%$ AppSettings:SiteName %>'></asp:Literal></title>

为便于后面描述,我们把上述的代码称为“代码一”。其输出的 HTML 为:

<title>
 千一网络
</title>

或者您也想除了站点名称,还得加上网页标题,形如:“用户管理 - 千一网络”、“文档管理 - 千一网络”…… 

要实现上面的效果,如下做法是不对的:

<title>用户管理 - <asp:Literal runat="server" Text='<%$ AppSettings:SiteName %>'></asp:Literal></title>

为便于后面描述,我们把上述的代码称为“代码二”。运行上述代码后,查看源码,您会发现“用户管理 - ”并没有在 <title> 中出现。

<title><asp:Literal runat="server" Text='用户管理 - <%$ AppSettings:SiteName %>'></asp:Literal></title>

上述代码是错误的用法,运行上述代码后,查看源码,您会发现结果为:用户管理 - <%$ AppSettings:SiteName %>。

您应该这样做:

<title><asp:Literal runat="server" Text="用户管理 - "></asp:Literal><asp:Literal runat="server" Text='<%$ AppSettings:SiteName %>'></asp:Literal></title>

为便于后面描述,我们把上述的代码称为“代码三”。

几点解释

为什么“代码一”运行后,<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> 中的文本就显示不出来。

相关阅读

你前面那位网友看了:VC# 中 ListView 图片使用-解决图片不能删除的问题

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他