如何在页面中检索自定义元标记?

时间:2010-03-02 10:34:18

标签: asp.net dotnetnuke meta-tags

我有以下代码:

List<HtmlMeta> metas = new List<HtmlMeta>();
foreach (Control c in this.Page.Header.Controls)
    if (c.GetType() == typeof(HtmlMeta))
    {
        HtmlMeta meta = (HtmlMeta)c;
        if (meta.Name == "CategoryID")
            strMeta = meta.Content;
    }

我创建了这个自定义元标记:

<meta id ="CategoryID" name="CategoryID" content="35" />

我逐步完成代码并在if (meta.Name == "CategoryID")

处休息

在此之前到达元标记,然后显示meta.name =“”然后退出循环。它永远不会看到我的自定义元标记。

此标记之前的标记为:<meta name="verify-v1" content="AtroutoUUTAiOHzlmZOap4a5YdzOByK5v9bzwpzPy60=" />

现在你可能会问我为什么要这样做。我正在使用DotNetNuke CMS,我需要一种方法让最终用户在后端代码中输入查询所需的参数。我似乎无法在网址中添加任何内容,例如链接中的查询字符串以进入页面,因此我尝试了一个元标记,因为他们可以在dnn中的页面(选项卡)设置中添加它。

我试过在标签中省略id而只是名字,但同样的问题。

我正在寻找一种简单且非资源密集的解决方案。

在dnn或ASP.net中对此或解决方法的任何见解都会很棒。

提前致谢。

2 个答案:

答案 0 :(得分:1)

如何将元控件添加到页面?如何将“verify-v1”标签实际添加到页面中?

我问,因为普通的HTML控件没有出现在Controls集合中,除非它们的声明中有runat="server",或者它们是通过.NET代码动态添加到页面中的。

如果您的加价看起来像这样:

<meta name="CategoryID" value="<%=categoryId%>" />

然后你将无法按照你想要的方式找到元控件。

您应该省略标签的ID,因为规范不支持。

答案 1 :(得分:0)

我的解决方案确实有效,它是在DotNetNuke中呈现页面的过程。