将数据库中的HTML编码回页面

时间:2011-02-04 14:54:20

标签: asp.net html jquery

我在数据库中有以下编码:

<p>
Content <span style="color: #ffffff"><span style="background-color: #ff0000">1+1+1+1=4</span></span>.</p>

我想将此值放入HTML div标签中。

在将上述值发送回客户端之前,我是否将其解码,还是在客户端解码?

我正在使用jquery和asp.net(vb)

这是我的jquery,它只是在屏幕上将json数据显示为html,而不是在警告框中弹出。

    function get_page( id ) {
        $.ajax({
            url: 'get_json.aspx?rand=' + Math.random(),
            type: 'POST',
            data: { intPageID:id },
            dataType: 'json',
            success: function(results) { 
                alert(results);
                /*
                $('input#txtID').val(results.id);
                $('input#txtHeading').val(results.heading);
                $('textarea#taContent').val(results.content);
                */
            }
        });

这是一个后续问题:Encode HTML before POST

3 个答案:

答案 0 :(得分:2)

这是风格/偏好的问题,因为你显然可以以任何方式呈现它。

我会在服务器端渲染它:

  • 节省带宽(编码开销+解码脚本)
  • 保持输出更简单,更快速,更少javascript
  • 隐藏html输出中的内部详细信息。用户不必知道某些页面作为html存储在数据库中。

如果你是偏执狂然后在你编码的同一层解码(或使用相同的工具) - 这将有助于避免误解“编码”的确切含义;)

答案 1 :(得分:1)

您可以在它转到客户端之前对其进行解码。

如果您正在通过asp.net,则无需使用javascript进行解码。

答案 2 :(得分:1)

我不会对它进行全部编码,并将其发送回字符串文字内(确保替换为“with”)。然后可以使用以下方法将其注入页面:

$('textarea#taContent').html(results.content);