自定义输出标题信息。可以让你在网页的<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对象,还没有搞明白,以后会补充。望原谅。
希望: 您能够有一点点的收获。我万分荣幸!
如果:您有什么好的知识帖子,望于我分享!谢谢!