【问题标题】:How can I HTML escape in Erazor?如何在 Erazor 中进行 HTML 转义?
【发布时间】:2012-08-31 12:11:18
【问题描述】:

我是 Haxe 的新手,我正在尝试使用 Ufront

我在使用 Erazor 模板时遇到问题:我不明白如何在输出变量时转义 HTML。

使用这个简单的模板:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Users list</title>
</head>
<body>
    <ul>
        @for(user in users)
        {
            <li>@user.name</li>
        }
    </ul>
</body>

</html>

如果任何用户的名称为“&lt;script&gt;”,则模板将简单地输出

如何在 Erazor 中正确地进行 HTML 转义?

【问题讨论】:

    标签: haxe ufront erazor


    【解决方案1】:

    如何 HTML 转义视图参数

    为了在 Erazor 视图中对参数进行 HTML 转义, 您可以简单地使用 HTML 辅助方法 encode()。

    假设您的参数称为 pageContent,其值为:

    <script>
        alert("BAD things could happens if you don't properly escape!!");
    </script>
    

    您可以使用以下代码对其进行转义:

    @Html.encode(pageContent)
    

    您的模板将安全地呈现为

    &lt;script&gt;
        alert("BAD things could happens if you don't properly escape!!");
    &lt;/script&gt;
    

    Html.encode() 在内部使用 StringTools.htmlEscape() 来转义其参数。

    感谢 Franco 的帮助,我在 Ufront 网站上写了一个页面来解释如何在 Ufront 中进行 HTML 转义。

    【讨论】:

      【解决方案2】:

      Ufron 自动包含包含所需方法的辅助类:

      <li>@Html.encode(user.name)</li>
      

      【讨论】:

        猜你喜欢
        • 2014-01-21
        • 1970-01-01
        • 1970-01-01
        • 2013-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-30
        • 2012-11-10
        相关资源
        最近更新 更多