4

我有一个 td 元素:

<td data-bind="html: name"></td>

我在 JavaScript 中有数据

var name = '@Html.Raw(HttpUtility.JavaScriptStringEncode(Model.Name))';

模型名称是<tag< tag

在 javascript 中,它看起来像:\u003ctag\u003c tag.

在第一种情况下,我看不到<tag它之后的所有内容。

在第二种情况下,我确实看到了< tag.

为什么第一个案例不起作用?

4

1 回答 1

4

它不起作用,因为Element.innerHTML不知道如何处理您提供的参数。在第二种情况下,输入被简单地视为文本,这就是它显示的原因,但在第一种情况下,它试图解释为 HTML(毕竟这就是 innerHTML 和 kendo 的 html 绑定的用途)。

如果您尝试显示<tag,那么您应该简单地使用文本绑定:

<td data-bind="text: name"></td>

如果 Model.Name 实际上包含应该呈现的 HTML,它应该是格式良好的并且有结束标签。

示例:http: //jsfiddle.net/lhoeppner/qkzEt/

于 2013-10-12T06:55:50.547 回答