Knockout.js 当数据包含<;脚本>;

Knockout.js 当数据包含<;脚本>;,knockout.js,Knockout.js,我有以下的淘汰定义: FunctionVm = function (initialData) { var self = this; self.Dto = { Name: ko.observable(initialData.Dto.Name) }; }; Html很简单: <input data-bind="value:Dto.Name" id="Dto_Name" type="text"></input> 现在,如果initialData={“Dt

我有以下的淘汰定义:

FunctionVm = function (initialData) {

var self = this;

self.Dto = {
    Name: ko.observable(initialData.Dto.Name)
    };
};
Html很简单:

<input data-bind="value:Dto.Name" id="Dto_Name" type="text"></input>
现在,如果initialData={“Dto”:{“Name”:“Home's”};没关系

然而如果

   initialData = {"Dto":{"Name":"<script>alert(1)</script>"}};
initialData={“Dto”:{“Name”:“alert(1)”};
淘汰赛没有显示任何内容


您能帮助我吗?

这是因为
结束标记结束了包含代码的脚本标记,因此您会因为未终止的字符串文本而出现语法错误

将标记拆分为两个字符串:

initialData = {"Dto":{"Name":"<script>alert(1)</scr"+"ipt>"}};
initialData={“Dto”:{“Name”:“alert(1)”};

在将数据插入“Name”之前,是否可以通过转义HTML来验证数据?PHP和jQuery都有用于此任务的函数。不信任用户输入:)

我正在使用C#生成客户端。我怎样才能把绳子分开?例如:使用Newtonsoft.Json将其序列化为Json。@user2103886:序列化后拆分,例如:
str=str.Replace(“,”)
initialData = {"Dto":{"Name":"<script>alert(1)</scr"+"ipt>"}};