在开始之前,我想明确说明我的代码工作正常,这更像是一个“一般最佳实践”问题。我正在使用 knockout.js 将我的 ASP.NET MVC2 模型加载到 Knockout 的 viewModel 中。
在我的 aspx 页面中,我有:
<script>
var model = <%= new JavaScriptSerializer().serialize(Model) %>;
// the above line will display in my page's "View Source". Is this bad? slow?
</script>
然后在顶部的 JavaScript 包含文件中,我有:
$(document).ready(function() {
var viewModel = new MyViewModel();
ko.applyBindings(viewModel);
viewModel.modelProp(model);
});
代码完全可以正常工作,但我担心的是 JSON 输出可以在 HTML 输出的浏览器的“查看源代码”选项中查看。我很好奇两件事:
这是否也发生在 ASP.NET MVC3 中?我正在使用 ASP.NET MVC2,因此我不能使用 @Html.Raw(Json.Encode(Model)); -- 但是 MVC3 方法会导致同样的问题吗?
这是我应该关心的事情吗?是安全问题吗?是性能问题吗?页面的源会更大,因为我将 JSON 输出到 JavaScript 变量中,不是吗?同样,也许这在 MVC3 中不是问题?