首页 > 解决方案 > 我可以提供 HTML 来使用 jQuery 填充 div 吗?

问题描述

我的模型中有一个包含静态 html(例如<br />)的字段。

尝试使用 jQuery 填充 div$('#myField').html(fieldval)时,浏览器会抛出错误,表明它收到了 Invalid 或 Unexpected 令牌。是否可以使用 jQuery 用 html 内容填充 div?

$('#myDiv').html(@Html.Raw(modelvalue));
$('#myDiv').html(modelvalue);

标签: jqueryhtmlasp.net-mvc

解决方案


在页面中引入 html 时要小心防止 xss 。

也就是说,对于您所要求的内容,请确保引用模型值,因为 jQuery 需要一个字符串。这将起作用。

$('#myDiv').html('@(new HtmlString(modelvalue))');

但是,您不应该这样做。

在插入原始 HTML 之前,您应该使用 WYSIWYG 编辑库或将用户接受的 html 列入白名单。如果它不是基于用户的,那么您应该使用自己的 html 结构创建一个单独的视图,然后使用经过清理的值填充该视图;然后插入该视图不是原始字符串。

如果您以某种方式直接写入响应流,并且生成的字符串已被清理,那么您可能不会问这个相当基本的问题,所以我排除了这个问题。


推荐阅读