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 id ="CategoryID" name="CategoryID" content="35" />

私はコードをステップスルーし、 if (meta.Name == "CategoryID")

これがmeta.name=""を表示し、ループを終了する前に、メタタグに到達します。カスタムメタタグが表示されることはありません。

この前のタグは次のとおりです。<meta name="verify-v1" content="AtroutoUUTAiOHzlmZOap4a5YdzOByK5v9bzwpzPy60=" />

今、あなたはなぜ私がこれをするのかと尋ねるかもしれません。DotNetNuke CMSを使用していますが、エンドユーザーがクエリに必要なパラメーターをバックエンドコードに入力する方法が必要です。ページにアクセスするためのリンクからのクエリ文字列のように、URLに何も入れていないようです。そこで、dnnのページ(タブ)の設定に追加できるメタタグを試しました。

タグのIDと名前だけを省略してみましたが、同じ問題です。

私は、シンプルでリソースを大量に消費しないソリューションを探しています。

これに対する洞察またはdnnまたはASP.netでの回避策は素晴らしいでしょう。

前もって感謝します。

4

2 に答える 2

1

ページにメタコントロールをどのように追加していますか?「verify-v1」タグは実際にどのようにページに追加されますか?

通常のHTMLコントロールはrunat="server"、宣言に含まれていない限り、または.NETコードを介して動的にページに追加されない限り、Controlsコレクションに表示されないためです。

マークアップが次のようになっている場合:

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

そうすると、あなたがしようとしている方法でメタコントロールを見つけることができなくなります。

タグのIDは仕様でサポートされていないため、省略してください。

于 2010-03-02T10:50:32.420 に答える
0

私のソリューションは機能します。それは、DotNetNukeでページがどのようにレンダリングされるかというプロセスです。

于 2010-03-09T14:34:43.910 に答える