如何防止客户端 HTML 使用 jsRender 编码从服务器编码已经编码的字符串
How to prevent client side HTML encoding with jsRender from encoding already encoded string from server
这很难解释,所以请耐心等待。我正在结合使用 ASP.NET HttpUtility.HtmlEncode()
方法的服务器端编码和 jsRender 的客户端编码(顺便说一句,很棒的渲染库。)
当我单独使用其中任何一个时,效果都很好。字符 <
会变成 <
但它在浏览器中仍会显示为 <
这很好,因为有时会在合法情况下使用这些字符并需要向用户显示正确,但未由浏览器执行。
问题是当我在服务器端编码然后在客户端编码相同的字符串时,它现在在浏览器中显示编码的字符串。您可能会问自己为什么我要在这两个地方都这样做。这样做的原因是我更喜欢在服务器端做,但我也喜欢让客户端在那里,以防开发人员忘记在服务器端做,反之亦然作为故障保护。
有什么方法可以让它在两个地方都进行编码,并且仍然在浏览器中显示为未编码的字符串?
我最终通过使用自定义渲染函数创建自己的自定义 jsRender 标签来解决这个问题,该函数检查字符串是否已经编码,如果是,它将不理会它,否则它将对其进行编码。
这里是 link 用于创建自定义标签 jsRedner Custom Tags Documentation
这很难解释,所以请耐心等待。我正在结合使用 ASP.NET HttpUtility.HtmlEncode()
方法的服务器端编码和 jsRender 的客户端编码(顺便说一句,很棒的渲染库。)
当我单独使用其中任何一个时,效果都很好。字符 <
会变成 <
但它在浏览器中仍会显示为 <
这很好,因为有时会在合法情况下使用这些字符并需要向用户显示正确,但未由浏览器执行。
问题是当我在服务器端编码然后在客户端编码相同的字符串时,它现在在浏览器中显示编码的字符串。您可能会问自己为什么我要在这两个地方都这样做。这样做的原因是我更喜欢在服务器端做,但我也喜欢让客户端在那里,以防开发人员忘记在服务器端做,反之亦然作为故障保护。
有什么方法可以让它在两个地方都进行编码,并且仍然在浏览器中显示为未编码的字符串?
我最终通过使用自定义渲染函数创建自己的自定义 jsRender 标签来解决这个问题,该函数检查字符串是否已经编码,如果是,它将不理会它,否则它将对其进行编码。
这里是 link 用于创建自定义标签 jsRedner Custom Tags Documentation