渲染文字文本时出现问题

时间:2012-03-13 13:07:18

标签: asp.net

我有一个如下所示的字符串

<meta property="og:title" content="test" /> 

这已经在它的text属性的文字控件中。当我看到渲染页面时。 它显示如下。

&lt;meta property=&quot;og:title&quot; content=&quot;test&quot; /&gt;

修改

以下是提供最终文本的来源......

public static void RenderName(Literal ltlMetaHolder, string contentName, string content)
{
    var metaTagFromat = "<TagName property=\"{0}\" content=\"{1}\" />";
    ltlMetaHolder.Text = string.Format(metaTagFromat, contentName, content);

}

预期结果

<meta property="og:title" content="test" />

实际结果

&lt;meta property=&quot;og:title&quot; content=&quot;test&quot; /&gt;

2 个答案:

答案 0 :(得分:2)

您应该将LiteraControl's Mode property设置为PassThrough。 然后不修改控件的内容。

默认值为Transform

  

不支持的标记语言元素将从内容中删除   控制。如果Literal控件是在浏览器上呈现的   支持HTML或XHTML,控件的内容不会被修改。

ltlMetaHolder.Mode = LiteralMode.PassThrough

答案 1 :(得分:1)

你可以这样做

public class MetaHelpers {
    public String WriteMeta(String property, String content) {
        return String.Format(@"<meta property=""{0}"" content=""{1}"" />", property, content);
    }
}

并在ASPX页面

<head runat="server">
<title></title>
<%= MetaHelpers.WriteMeta("og:title", "test") %>