1

当我动态添加元标记时,它们会呈现在一行中。

我怎样才能将它们分成单独的行

在此处输入图像描述

我尝试了以下代码,但这对我不起作用

Page.Title = ds.Tables[0].Rows[0]["Title"].ToString() + " by " + ds.Tables[0].Rows[0]["Author"].ToString();
Page.Controls.Add(new LiteralControl("\n"));
Page.MetaDescription = ds.Tables[0].Rows[0]["Desc"].ToString();
Page.Controls.Add(new LiteralControl("\n"));
Page.MetaKeywords = ds.Tables[0].Rows[0]["Keywords"].ToString();
Page.Controls.Add(new LiteralControl("\n"));

我正在为我的网站使用 asp.net 网络表单。感谢您提供这方面的帮助。

4

3 回答 3

3

您尝试添加新行的方式将不起作用,因为 MetaDescription 已准备好存在于特定位置,并且您在“某处”添加新行但不是在之后。

尝试将标题的所有控件一个接一个地添加为:

HtmlMeta metaDes = new HtmlMeta();
metaDes.Name = "description";
metaDes.Content = ds.Tables[0].Rows[0]["Desc"].ToString();

// add the description on the hader.
Page.Header.Controls.Add(metaDes);
// right after add the new line
Page.Header.Controls.Add(new LiteralControl("\n"));

或者你甚至可以简单地在你的标题上添加一个文字,然后只渲染最终输出,一组你的 html 代码。

于 2013-04-30T13:30:31.283 回答
1

发帖太晚了。但可能对未来的读者有所帮助。

要在新行上显示keywords&description元,请尝试以下操作:

protected void AddMetaTag()
{
    HtmlMeta description = new HtmlMeta();
    description.Name = "description";
    description.Content ="some desc";

    HtmlMeta keywords = new HtmlMeta();
    keywords.HttpEquiv = "keywords";
    keywords.Name ="site keywords";

    this.Page.Header.Controls.Add(new LiteralControl("\r\n"));
    this.Page.Header.Controls.Add(keywords);
    this.Page.Header.Controls.Add(new LiteralControl("\r\n"));
    this.Page.Header.Controls.Add(description);
    this.Page.Header.Controls.Add(new LiteralControl("\r\n"));
}

输出:

<meta name="keywords" content="site keywords" />
<meta name="description" content="some desc />

希望这可以帮助!

于 2014-11-28T13:04:42.630 回答
0

我发现我可以使用以下方法在元标记中实现新行:

StringBuilder sb = new StringBuilder();
meta.Append("<meta name=""description"" content=""");
meta.Append(description);
meta.Append("""/>");
meta.Append(Environment.NewLine());

....

Page.Header.Controls.Add(new LiteralControl(sb.ToString()));
于 2013-07-05T10:40:23.490 回答