【问题标题】:Can i supply HTML to populate a div using jQuery?我可以提供 HTML 来使用 jQuery 填充 div 吗?
【发布时间】:2019-01-30 21:22:05
【问题描述】:

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

当尝试使用 jQuery 使用 $('#myField').html(fieldval) 填充 div 时,浏览器会抛出错误,它收到了一个无效或意外的令牌。是否可以使用 jQuery 用 html 内容填充 div?

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

【问题讨论】:

  • 这是@Html.Raw Razor 语法吗?
  • 如果你使用服务器端变量,你需要用引号括起来。
  • 使用 jquery 的 .text() 方法,如example
  • 为什么不看看 Razor 的输出呢?在浏览器中查看源代码。你会看到你有无效的html,例如$('#myDiv').html(<br/>),而它显然应该是$('#myDiv').html("<br/>")@Html.Raw 将按原样输出,而 @Model.Value 将为您转义(与它在 asp.net 中的工作方式相反)

标签: jquery html asp.net-mvc


【解决方案1】:

在页面中引入html时要注意prevent xss

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

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

但是,您不应该这样做。

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

如果您以某种方式直接写入响应流,并且生成的字符串 已消毒,那么您可能不会问这个相当基本的问题,所以我裁定出去。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 2011-06-22
    • 1970-01-01
    • 2012-10-30
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多