【发布时间】:2013-09-01 21:07:36
【问题描述】:
首先,这段代码确实有效,但它给了我一些我想摆脱的烦恼。我有一个使用 razor 语法构建的 .cshtml 页面。幕后有一个巨大的、令人讨厌的、淘汰的对象,页面上的许多东西都绑定到它上面。目前,在实例化该淘汰模型时,我通过在如下所示的字符串文字中序列化有问题的 C# viewmodel 对象来做到这一点。
<script type="text/javascript">
$(document).ready(function() {
var data = @Html.Raw(Json.Encode(Model));
var contentListingModel = new ContentListingModel(data);
ko.applyBindings(contentListingModel, $('#pageRoot').get(0));
});
</script>
就像我说的,代码有效。但是,在调用 @Html.Raw 时,我收到了警告。 Visual Studio 认为那里存在语法错误(在呈现后没有)。现在,这完全有道理,为什么事情认为那里存在语法问题。但是我很想通过以一种不会触发此问题的方式进行编码来消除警告(我意识到我可以隐藏警告或做任何其他事情),但我只是希望它在以下情况下不显示我将 C# 对象序列化为 JSON 并将它们填充到页面上的 javascript 中。有什么想法吗?
我完全接受询问这个问题是迂腐和琐碎的,因为代码运行良好并且看似干净,但它让我烦恼。
【问题讨论】:
-
你不能把它封装在一个字符串文字中吗? var data = '@Html.Raw(Json.Encode(Model))';
-
警告说什么?
标签: javascript asp.net-mvc-4 knockout.js razor-2