5

我正在使用 ASP.net MVC3,我使用 Jquery.AJAX 返回了一个 Json 格式的模型,然后我将它传递给一个 Jquery 模板以打印出来。

例如服务器返回的 Json {"Key":2,"Content":"I'm Jason\u003cbr /\u003ehow are you"} 不是 {"Key":2,"Content":"I'm Jason <br /> how are you"}

当我使用 Jquery 模板将其附加到 Div 中时,它打印出如下内容:

I'm Jason <br /> how are you

而预期的结果应该是

I'm Jason 
how are you

我是否想阻止服务器在服务器端对字符串进行编码?但我认为这可能会导致安全问题。
因此,我认为我必须在客户端解码 Json 字符串,但到目前为止还没有运气。谁能告诉我处理此类问题的适当方法?
谢谢

*更新
我测试 jQuery('#someDiv').append(data.Content);并按预期打印出来。
所以问题可能与Jquery模板有关

我正在使用此代码将数据传递到 Jquery 模板jQuery('#someTemplate').tmpl(data).appendTo('#someDiv');
我的 Jquery 模板

<script id="someTemplate" type="text/x-jquery-tmpl">
 <div>${Content}</div>
</script>
4

3 回答 3

1

我遇到了同样的问题。无需编码/解码或转义/取消转义。

而不是这个:

${Content}

用这个:

{{html Content}}

将显示为 HTML 的 unicode。

于 2011-06-14T19:10:18.597 回答
0

我对 ajax 模板有同样的问题。该字符串有一个 \n ,它在模板上被忽略,如果我将 \n 转换为<br/>然后<br />显示而不是换行符。

如果我使用{{ unscape(myString) }},那么结果仍然是“<br />下一行的一些文本”

于 2011-01-28T10:37:20.227 回答
0

您应该取消转义您的内容字符串,例如:

alert(unescape('\u003cbr /\u003e'));
于 2011-01-25T14:10:49.230 回答