use*_*689 3 asp.net-mvc json knockout.js
我正在使用Knockout和MVC以及我看到的标准方法来获得淘汰视图模型是这样的:
var model = '@Html.Raw(Json.Encode(Model))';
var viewModel = ko.mapping.fromJSON(model);
Run Code Online (Sandbox Code Playgroud)
但是如果我的模型中包含特殊字符的字符串属性,例如'\ r \n',我会得到一个JSON解析错误'意外令牌'.
所以我相信我需要逃避这些角色,因此它们就像'\\ r \\n'.这该怎么做?
我知道我可以针对这个特殊情况做这件事:
var model = '@Html.Raw(Json.Encode(Model).Replace(@"\", @"\\"))';
Run Code Online (Sandbox Code Playgroud)
但可能还有其他...标签,单引号.
下面是浏览器中实际渲染模型的示例:
var model = '{"Id":4465,"TextContents":["EYE FILLET STEAK\r\nLINE 2 IS HERE"]}';
Run Code Online (Sandbox Code Playgroud)
你model是一个字符串,而不是JSON.它在解析JSON之前评估转义字符(如果有的话)?为什么需要引号?只需删除它们.
var model = @Html.Raw(Json.Encode(Model));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5749 次 |
| 最近记录: |