【发布时间】:2013-04-02 13:35:36
【问题描述】:
我正在编写一个帮助方法,它将在页面上生成评论的 HTML,我希望能够显示带有“alert("hello");”的评论作为它的内容。
使用时
@HttpUtility.HtmlDecode(comment.Content)
在 *.cshtml 文件中,该脚本被呈现为纯文本。
但是当在视图中使用这个 HTML 助手时:
@Html.PendingComment(comment)
脚本被渲染为 HTML 并被执行:
public static IHtmlString PendingComment(this HtmlHelper helper, VoidCommentPending comment)
{
var sb = new StringBuilder();
sb.Append("<p>" + HttpUtility.HtmlDecode(comment.Content) + "</p>");
return MvcHtmlString.Create(sb.ToString());
}
尝试使用“new HtmlString()”,结果相同,当我将返回结果从 IHtmlString 更改为字符串时,甚至段落标签都呈现为纯文本。
是否可以在 HtmlHelper 中混合编码和解码 HTML 字符串,还是应该使用不同的方法?
【问题讨论】:
标签: asp.net-mvc razor asp.net-mvc-4 html-helper decode