自定义输出标题信息。可以让你在网页的 < title ></ title > 中输出自定义的文字。
这也是我今天要向大家讲解的例子。其实,之中有很多的知识点,有些原理性的东西我也不是很清楚。只做个“抛砖引玉”吧。后续的一些知识点,会慢慢补上。望见谅。如果,您有比较好的技术性的文章,希望能够与我分享!谢谢!
< head runat ="server">
< title > 会员首页-XX 会员</ title >
</ head >
因为有很多的会员,昵称都不同,做到输出不同的< title >XXXX</ title >
直接贴代码:
1. 编写重写< title ></ title > 的类的代码。
[ParseChildren (false ), PersistChildren (true )]
public class MyTitle :Control
{
private const string titleKey = "Hotspot.Title.Value" ;
protected override void Render(HtmlTextWriter writer)
{
string siteName = this .Context.Items[titleKey] as string ?? string .Empty;
if (string .IsNullOrEmpty(siteName))
{
siteName = " 自定义的title 内容" ;
}
writer.WriteLine("<title>{0}</title>" , siteName);
}
}
注释: MyTitle 该类必须继承自Control ,并且重写Render(HtmlTextWriter writer) 方法。该方法中参数为HtmlTextWriter 对象,该对象将写< title >XXXX</ title > , 并将其输出至页面。( 其实,是将title 重写为了用户自定义的一个简单的控件) 。
2. 在web.config 配置文件中,注册该控件。
< add tagPrefix = "MyTitle " namespace = "Controls " assembly = "Controls "/>
注释: tagPrefix 指该控件的前缀;namespace 指该控件的命名空间;assembly 指该控件的程序集;
3. 在页面中引用该控件。
< head runat ="server">
< MyTitle : MyTitle runat ="server" ID ="mylalble1" ></ MyTitle : MyTitle >
</ head >
注释: 可以对照第1 、2 步,可以知道,页面中引用的结构为:
< 前缀 : 类名 runat ="server" ID ="mylalble1" ></ 前缀 : 类名 >
到此,代码就完成了,是不是很简单?!相信你已经看明白了。
但是,其中还有很多知识,还没来的急消化。关于 Control 类、HtmlTextWriter 对象,还没有搞明白,以后会补充。望原谅。
希望: 您能够有一点点的收获。我万分荣幸!
如果:您有什么好的知识帖子,望于我分享!谢谢!