C#&;添加动态元标记

C#&;添加动态元标记,c#,asp.net,meta-tags,C#,Asp.net,Meta Tags,我有这个密码 protected void Page_Load(object sender, EventArgs e) { DataSet.DestinationsDataTable GetDestinations = (DataSet.DestinationsDataTable)dta.GetData(); Page.Title = GetDestinations.Rows[0]["Meta_Title"].ToString(); HtmlMeta hm = new

我有这个密码

 protected void Page_Load(object sender, EventArgs e)
{
    DataSet.DestinationsDataTable GetDestinations = (DataSet.DestinationsDataTable)dta.GetData();
    Page.Title = GetDestinations.Rows[0]["Meta_Title"].ToString();

    HtmlMeta hm = new HtmlMeta();
    HtmlHead head = (HtmlHead)Page.Header;
    hm.Name = GetDestinations.Rows[0]["Meta_Desc"].ToString();
    hm.Content = GetDestinations.Rows[0]["Meta_Key"].ToString();
    head.Controls.Add(hm);  
}
它返回这个错误(在内容页上)

无法修改控件集合,因为控件包含代码块(即)。

想法?

我看不出错误消息中有什么不清楚的地方。 您的
标记包含一个
块,因此您无法在运行时在那里动态添加控件

要解决此问题,请添加占位符并将元标记放在那里:

<html>
    <head>
        ...
        <asp:PlaceHolder runat="server" ID="metaTags" />
    </head>
...

啊,谢谢我知道这个问题我只是不知道如何解决它。再次感谢!
<html>
    <head>
        ...
        <asp:PlaceHolder runat="server" ID="metaTags" />
    </head>
...
protected void Page_Load(object sender, EventArgs e)
{
    DataSet.DestinationsDataTable GetDestinations = (DataSet.DestinationsDataTable)dta.GetData();
    Page.Title = GetDestinations.Rows[0]["Meta_Title"].ToString();

    HtmlMeta hm = new HtmlMeta();
    hm.Name = GetDestinations.Rows[0]["Meta_Desc"].ToString();
    hm.Content = GetDestinations.Rows[0]["Meta_Key"].ToString();
    this.metaTags.Controls.Add(hm);  
}