ASP.NET用户控件中设置meta标签中的keywords和description

网上有许多相似的代码可以实现动态设置meta标签里的内容:

HtmlMeta keywords = new HtmlMeta(), // keywords

HtmlMeta description = new HtmlMeta(); // description

        keywords.Name = "keywords";

        keywords.Content = key;

        description.Name = "description";

        description.Content = des;

        Page.Header.Controls.Add(keywords);

        Page.Header.Controls.Add(description);

不过,我个人觉得不太好用,因为这样做不适合用用户控件,下面说说我是如何做的。

首先,建一个ascx,html代码如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MetaList.ascx.cs" Inherits="GEMarketingWeb.Controls.MetaList" %>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="UTF-8" />
<meta name="robots" content="all" />
<meta id="mkeywords" runat="server" name="keywords" content="***keywords" />
<meta id="mdescription" runat="server" name="description" content="***description"/>

然后在后代CS文件里加入:

public void SetKeywords(string value)
{
this.mkeywords.Attributes["Content"] = value;
}

public void SetDescription(string value)
{
this.mdescription.Attributes["Content"] = value;
}

P.S:本以为mkeywords,mdescription做为HtmlControl应该能转换成HtmlMeta对象,尝试后发现是不行的。

这样,引用了这个用户控制的页面,都能通过使用这个控件对象来动态设置meta标签中的keywords和description了。

posted @ 2011-08-30 16:04  铁芒阁  阅读(1340)  评论(0编辑  收藏  举报
分享到: