Javascript Knockout.mapping.fromJSON失败,原因是';人物
我正在尝试将viewmodel绑定到Knockout,因为我需要执行一些客户端操作。我遇到了一个问题,因为有一个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
“
字符
我的模型中有一些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))