2010-03-02 75 views
0

我有以下代碼:如何在頁面中檢索自定義元標記?

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標籤:

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

我通過代碼,並在if (meta.Name == "CategoryID")

它得到的meta標籤在此之前打破然後顯示meta.name =「」然後退出循環。它從來沒有看到我的自定義元標記。

此人之前的標籤是:<meta name="verify-v1" content="AtroutoUUTAiOHzlmZOap4a5YdzOByK5v9bzwpzPy60=" />

現在你可能會問我爲什麼要這麼做。我正在使用DotNetNuke CMS,我需要一種方式讓最終用戶在後端代碼中輸入查詢所需的參數。我似乎無法在網址中添加任何內容,就像鏈接中的查詢字符串以進入頁面,所以我嘗試了一個元標記,因爲他們可以在dnn中的頁面(標籤)設置中添加此標記。

我已經嘗試在標籤中留下id,只是名稱,但同樣的問題。

我正在尋找一種簡單和非資源密集型解決方案。

任何有關dnn或ASP.net的解決方案或解決方法都會很棒。

在此先感謝。

+0

元標題標籤是用runat =「server」定義的嗎? – Timores 2010-03-02 10:48:03

+0

我不是在我的模塊中創建頁面,我只是使用選項卡的dnn設置將meta添加到頁面。當我查看源代碼時,它就在那裏。 – 2010-03-02 11:01:05

回答

0

我的解決方案確實起作用,它是在DotNetNuke中呈現頁面的過程。

1

你如何將元控件添加到頁面?如何將「verify-v1」標籤實際添加到頁面中?

我問,因爲正常的HTML控件沒有出現在Controls集合中,除非他們的聲明中有runat="server",或者他們通過.NET代碼動態添加到頁面中。

如果加價看起來是這樣的:

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

那麼你將無法找到元控制您要的方式。

您應該忽略標籤的ID,因爲該規範不支持該標籤。

+0

我使用DotNetNuke中選項卡的設置將元添加到頁面。我的標記是靜態的。如果我忽略ID同樣的問題。 – 2010-03-02 10:56:33

相關問題