首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

ASP.NET 怎么动态修改 Header 属性如添加 Meta 标签 keywords description

2012-03-05 
ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description!我现在做了一个类里面写的是pub

ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description!
我现在做了一个类里面写的是
public class initfunc : System.Web.UI.Page
{
public initfunc()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public void setMeta(string key, string des)
  {
  HtmlMeta keywords = new HtmlMeta(), description = new HtmlMeta(); // keywords, description
  keywords.Name = "keywords";
  keywords.Content = key;

  description.Name = "description";
  description.Content = des;

  Page.Header.Controls.Add(keywords);
  Page.Header.Controls.Add(description);
  }
}

然后我在test.aspx.cs代码中这么写
initfunc ini = new initfunc();
protected void Page_Load(object sender, EventArgs e)
  {
ini.setMeta("1111", "2222");
  }
程序出现错误:System.NullReferenceException: 未将对象引用设置到对象的实例。
我就是想在编写每个页面代码的时候都能调用这个类进行修改 keywords description。希望帮我解答或者帮我想个更好的办法!

[解决办法]

C# code
// 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);
[解决办法]
我是写在masterpage里,不同的页,赋值Session("currentpage"),根据库里的不同页不同关键词填充。
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
makemeta(Session("currentpage"))
End Sub
Sub makemeta(ByVal item As String)
Dim ds As DataSet = toolClass.getmeta(item)
Page.Title = ds.Tables(0).Rows(0)("title")
Dim meta As New HtmlMeta
meta.Name = "keywords"
meta.Content = ds.Tables(0).Rows(0)("keywords")
Page.Header.Controls.Add(meta)
meta.Name = "description"
meta.Content = ds.Tables(0).Rows(0)("description")
Page.Header.Controls.Add(meta)
End Sub
[解决办法]
C# code
public class initfunc : System.Web.UI.Page{public initfunc(){//// TODO: 在此处添加构造函数逻辑//}     public void setMeta(System.Web.UI.Control page,string key, string des)     {        HtmlMeta keywords = new HtmlMeta(), description = new HtmlMeta(); // keywords, description        keywords.Name = "keywords";        keywords.Content = key;        description.Name = "description";        description.Content = des;        page.Header.Controls.Add(keywords);        page.Header.Controls.Add(description);    }} //加个参数,使用的时候initfunc ini = new initfunc();protected void Page_Load(object sender, EventArgs e){    ini.setMeta(this,"1111", "2222");}
[解决办法]
C# code
    public class AA    {         public static void setMeta(string keyWords)        {            System.Web.UI.HtmlControls.HtmlMeta m = new HtmlMeta();            m.Name = "keywords";            m.Content = keyWords;            System.Web.UI.Page p = (System.Web.UI.Page)System.Web.HttpContext.Current.Handler;            p.Header.Controls.Add(m);        }    }调用:protected void Page_Load(object sender, EventArgs e)        {            AA.setMeta("关键词AAA");                        }
[解决办法]
幕白兄来了!!

热点排行