我有以下代码:
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中对此或解决方法的任何见解都会很棒。
提前致谢。
答案 0 :(得分:1)
如何将元控件添加到页面?如何将“verify-v1”标签实际添加到页面中?
我问,因为普通的HTML控件没有出现在Controls集合中,除非它们的声明中有runat="server"
,或者它们是通过.NET代码动态添加到页面中的。
如果您的加价看起来像这样:
<meta name="CategoryID" value="<%=categoryId%>" />
然后你将无法按照你想要的方式找到元控件。
您应该省略标签的ID,因为规范不支持。
答案 1 :(得分:0)
我的解决方案确实有效,它是在DotNetNuke中呈现页面的过程。