1

我将 HTML 标记插入到数据库表中:

<table>
<tr>
   <td>1</td>
   <td>2</td>
   <td>3</td>
</tr>
</table>

并将检索到的数据发送到 View

func MyEvent(ctx iris.Context){
        rows := ...
        ctx.ViewData("rows", rows[0])
        ctx.View("template.html")
}

我怎么能在这种情况下禁用自动转义?

4

1 回答 1

0

如何通过模板获取原始 HTML 并将其输入输出取决于您在 Iris 中使用的模板引擎。Iris 支持五个开箱即用的模板引擎

如果您使用的是标准html/template包,那么您将使用以下template.HTML类型将字符串标记为“安全 HTML”:

ctx.ViewData("rows", template.HTML(rows[0]))

或添加您自己的过滤器,它只是return template.HTML(s)在模板中使用并使用它。

如果您使用的是 Handlebars,那么您将{{{...}}}在模板或raymond.SafeString助手中使用

{{{yourHTML}}}

如果您使用的是其他模板引擎之一,那么您将使用它们提供的任何机制来通过模板获取原始 HTML。

当然,所有这些都假设您在 HTML 进入数据库之前或在它从数据库到模板之前对其进行了清理和清理。

于 2018-02-11T21:26:18.183 回答