在进行Web开发的过程中,有时候会需要动态地通过代码操作页面的一些元素。比如,我们要做一个换皮肤的功能,可能就需要动态的更换页面引用的样式文件。在比如,我们在做搜索引擎优化(SEO)时,可能需要在代码中动态的设置页面的Meta标签,如Keywords,Description等。在ASP.NET中,我们可以很方便的实现这些功能。
设置Title : this.Header.Title="这是个Title测试";
如果用了MasterPage可以这样用: this.Page.Title = SiteMap.CurrentNode.Title;
动态设置Style:
Style style = new Style();
style.ForeColor = System.Drawing.Color.Navy;
style.BackColor = System.Drawing.Color.LightGray;
// Add the style to the header for the body of the page
this.Header.StyleSheet.CreateStyleRule(style, null, "body");
动态加样式表: HtmlLink link = new HtmlLink();
link.Attributes.Add("type", "text/css");
link.Attributes.Add("rel", "stylesheet");
link.Attributes.Add("href", "~/newstyle.css");
this.Header.Controls.Add(link);
动态加meta tags : // Render: <meta name="keywords" content="Some words listed here" />
HtmlMeta meta = new HtmlMeta();
meta.Name = "keywords";
meta.Content = "Some words listed here";
this.Header.Controls.Add(meta);
// Render: <meta name="robots" content="noindex" />
meta = new HtmlMeta();
meta.Name = "robots";
meta.Content = "noindex";
this.Header.Controls.Add(meta);
// Render: <meta name="date" content="2006-03-25" scheme="YYYY-MM-DD" />
meta = new HtmlMeta();
meta.Name = "date";
meta.Content = DateTime.Now.ToString("yyyy-MM-dd");
meta.Scheme = "YYYY-MM-DD";
this.Header.Controls.Add(meta);
以上的方法都是通过后台代码(服务器端的代码)实现的,其实这些功能是完全可以利用Javascript+DOM来实现的,并且不会刷新页面。笔者将会在后续的文章中提到。