【问题标题】:How do I retrieve a custom meta tag in a page?如何检索页面中的自定义元标记?
【发布时间】:2011-01-22 16:15:13
【问题描述】:

我有以下代码:

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 ="" 然后退出循环。它永远不会看到我的自定义元标记。

这个之前的标签是:&lt;meta name="verify-v1" content="AtroutoUUTAiOHzlmZOap4a5YdzOByK5v9bzwpzPy60=" /&gt;

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

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

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

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

提前致谢。

【问题讨论】:

  • 并且meta header标签是用runat="server" 定义的?
  • 我没有在我的模块中创建页面,我只是使用选项卡的 dnn 设置将元数据添加到页面中。当我查看源代码时,它就在那里。

标签: asp.net dotnetnuke meta-tags


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    如果您的标记看起来像这样:

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

    那么您将无法按照您尝试的方式找到元控件。

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

    【讨论】:

    • 我使用 DotNetNuke 中的选项卡设置将元数据添加到页面。我的标记是静态的。如果我遗漏 ID 相同的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    相关资源
    最近更新 更多