-1
protected override void OnLoad(EventArgs e) {
    base.OnLoad(e);
    Literal lTags = new Literal();
    lTags.Text = "<meta name=\"MetaTagsDemo\" content=\"Meta demo tag\" />";
    this.Header.Controls.Add(lTags);
}

default.aspx.csに上記のコードがあります。Default.aspxページが読み込まれると、セクション内にコントロールが追加されているのがわかりますが、ページの上部(ページの最初の行)では、html表示は「」です。

私はここで何が間違っているのですか?

私はBrowse.aspxという名前の別のページを持っていますが、同じ機能がありますが、このページにはhtml出力が表示されません。

アップデート

メタタグのソースはデータベースであり、メタタグ全体が1つのフィールドに保存されます

4

1 に答える 1

1

次のように、メタタグをhtmlコントロールとして追加する必要があります。

HtmlMeta tag = new HtmlMeta();
tag.Name = "MetaTagsDemo";
tag.Content = "Meta demo tag";
Page.Header.Controls.Add(tag);

アップデート:

はい、データベース入力を解析する必要があります。HtmlAgilityPackを使用すると、これは簡単なタスクです。次に例を示します。

  HtmlDocument doc = new HtmlDocument();
  doc.LoadHtml("<meta name=\"MetaTagsDemo\" content=\"Meta demo tag\" />");
  foreach (HtmlNode meta in doc.DocumentNode.SelectNodes("//meta"))
  {
    string metaName = meta.Attributes["Name"].Value;
    string content = meta.Attributes["Content"].Value;
    /// do something
  }

更新2

HtmlAgilityPackはありません。これは手っ取り早い方法です。テストする必要があります

  string meta = "<meta name=\"MetaTagsDemo\" content=\"Meta demo tag\" />";
  string[] splitted = meta.Split('"');
  string metaName = splitted[1];
  string metaContent = splitted[3];
于 2012-05-02T14:57:16.120 に答える