【发布时间】:2013-11-02 22:56:51
【问题描述】:
长话短说,我正在尝试对 JsonConvert.SerializeObject 的输出进行清理,而无需修改已保存数据的内容。
我正在开发一个在视图中具有以下标记的应用:
<textarea data-bind="value: aboutMe"></textarea>
如果我保存以下文本,我会遇到问题:
<script type="text/javascript">alert("hey")</script>
我在 FF 中遇到的错误:
违规渲染文本的相关部分:
$(document).ready(ko.applyBindings(new MyProfileVm({"profileUsername":"admin","username":"Admin","aboutMe":"alert(\"hey\")","title":"这是一个 简短的自我介绍! :)","thumbnail":"https://i.imgur.com/H1HYxU9.jpg","locationZip":"22182","locationName":"维也纳, 弗吉尼亚州”
最后 - 在我的观点的底部:
<script type="text/javascript">
$(document).ready(ko.applyBindings(new MyProfileVm(@Html.Raw(JsonConvert.SerializeObject(Model, new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() })))));
</script>
在这里,我将从 MVC 控制器获得的模型传递到 js ViewModel 中,以进行剔除以映射到可观察的数据。原始编码似乎是问题所在,但我不确定如何处理它。
明确地说,我正在从服务器获取数据,并将其输出到客户端,这破坏了 JSON/KO 组合。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 knockout.js json.net