如何防止客户端 HTML 使用 jsRender 编码从服务器编码已经编码的字符串

How to prevent client side HTML encoding with jsRender from encoding already encoded string from server

这很难解释,所以请耐心等待。我正在结合使用 ASP.NET HttpUtility.HtmlEncode() 方法的服务器端编码和 jsRender 的客户端编码(顺便说一句,很棒的渲染库。)

当我单独使用其中任何一个时,效果都很好。字符 < 会变成 &lt; 但它在浏览器中仍会显示为 < 这很好,因为有时会在合法情况下使用这些字符并需要向用户显示正确,但未由浏览器执行。

问题是当我在服务器端编码然后在客户端编码相同的字符串时,它现在在浏览器中显示编码的字符串。您可能会问自己为什么我要在这两个地方都这样做。这样做的原因是我更喜欢在服务器端做,但我也喜欢让客户端在那里,以防开发人员忘记在服务器端做,反之亦然作为故障保护。

有什么方法可以让它在两个地方都进行编码,并且仍然在浏览器中显示为未编码的字符串?

我最终通过使用自定义渲染函数创建自己的自定义 jsRender 标签来解决这个问题,该函数检查字符串是否已经编码,如果是,它将不理会它,否则它将对其进行编码。

这里是 link 用于创建自定义标签 jsRedner Custom Tags Documentation