Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Knockout.mapping.fromJSON失败,原因是';人物_Javascript_C#_Mvvm_Knockout.js - Fatal编程技术网

Javascript Knockout.mapping.fromJSON失败,原因是';人物

Javascript Knockout.mapping.fromJSON失败,原因是';人物,javascript,c#,mvvm,knockout.js,Javascript,C#,Mvvm,Knockout.js,我正在尝试将viewmodel绑定到Knockout,因为我需要执行一些客户端操作。我遇到了一个问题,因为有一个“字符 我的模型中有一些SelectListItem对象,这些对象如下所示: { "Disabled": false, "Selected": false, "Text": "Côte d'Ivoire", "Value": 59 } 请注意文本属性中的”字符:“科特迪瓦”。 这个角色是所有问题的关键,因为这就是我如何将viewmodel转换为kovi

我正在尝试将viewmodel绑定到Knockout,因为我需要执行一些客户端操作。我遇到了一个问题,因为有一个
字符

我的模型中有一些
SelectListItem
对象,这些对象如下所示:

{
    "Disabled": false,
    "Selected": false,
    "Text": "Côte d'Ivoire",
    "Value": 59
}
请注意
文本
属性中的
字符:
“科特迪瓦”
。 这个角色是所有问题的关键,因为这就是我如何将viewmodel转换为
ko
viewmodel:

@{
    var serializerSettings = new Newtonsoft.Json.JsonSerializerSettings();
    serializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
    var jsonData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model, serializerSettings));
}

@using(Html.BeginScripts())
{
    @Scripts.Render("~/bundles/knockout")

    <script type="text/javascript">

        var vm = ko.mapping.fromJSON('@Html.Raw(jsonData)')

    </script>

}

这里的问题是这一行:

var vm = ko.mapping.fromJSON('@Html.Raw(jsonData)')
特别是将
jsonData
放入一个JavaScript字符串中的部分,未设置脚本,其结果实际上是:

var vm = ko.mapping.fromJSON('{"Text": "Côte d'Ivoire"}')
该单引号需要转义,否则会破坏整个字符串。您可以修复此服务器端并转义字符串,也可以使用,而不是用单引号将JSON字符串括起来:

var vm = ko.mapping.fromJS(@Html.Raw(jsonData))

这里的问题是这一行:

var vm = ko.mapping.fromJSON('@Html.Raw(jsonData)')
特别是将
jsonData
放入一个JavaScript字符串中的部分,未设置脚本,其结果实际上是:

var vm = ko.mapping.fromJSON('{"Text": "Côte d'Ivoire"}')
该单引号需要转义,否则会破坏整个字符串。您可以修复此服务器端并转义字符串,也可以使用,而不是用单引号将JSON字符串括起来:

var vm = ko.mapping.fromJS(@Html.Raw(jsonData))