1

我是 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>

如果任何用户的名称为 ' <script>',则模板将简单地输出 <script> 作为其名称。

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

4

2 回答 2

3

如何 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 转义。

于 2012-09-07T21:57:31.113 回答
2

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

<li>@Html.encode(user.name)</li>
于 2012-09-07T19:57:08.440 回答