为什么我输出HTML代码?

时间:2011-10-15 21:30:35

标签: c# asp.net

我正在尝试通过

在我的网页上输出HTML
  <p>
    @Server.HtmlEncode(elem.Text.ToString().Replace("[BR]", "<br />"));
  </p>

[BR]是我的编码<br />,因为我不会/不能直接保存html。但问题是,当我使用@ Server.HtmlEncode时,我得到了这个输出:

one little&lt;br /&gt;&lt;br /&gt;test!;

如果没有编码也看起来不对,那么它会以明文输出<br /> :(

有没有人知道如何正确编码/输出?

3 个答案:

答案 0 :(得分:5)

您是双重HTML编码。 @已经执行了Html编码。尝试:

@elem.Text.ToString().Replace("[BR]", "<br />")

或:

@(new HtmlString(elem.Text.ToString().Replace("[BR]", "<br />")))

或:

@Html.Raw(elem.Text.ToString().Replace("[BR]", "<br />"))

答案 1 :(得分:0)

Encode中的单词HtmlEncode表示它将原始html转换为其编码输出,即您所看到的内容。如果你想要原始html,那么你可以Response.Write()或者,因为看起来你正在使用Razor,@Html.Raw()

答案 2 :(得分:0)

HtmlEncode转义特殊字符,例如&lt;取代。使用Html.Raw而不是if。