[英]asp.net MVC with MVVM via Knockout, pass model to javascript
我正在写一个MVC应用程序,我已经决定Knockout.js将帮助解决我的很多问题,除了在这个过程中,它已经创建了一个我正在解决问题的新问题。
我将所有MVC端点转换为仅返回视图,然后我创建了几个返回JSON对象的端点。 当用户浏览网站时,该网站会加载基本UI框架。 之后,Knockout.js通过AJAX调用加载模型。 这导致每个页面都被加载,然后再次“加载”,就像加载页面的MVC和所有数据一样。
我一直在研究如何同时加载两者,但我没有找到任何不需要我完全重构网站的东西。 最好的选择是:
@Html.Raw(Json.Encode(object))
将模型转换为代码隐藏中的JSON 但是我必须得到所有纯JSON端点。
我还能做些什么来将JSON端点数据传递到服务器端的视图吗? 或者以任何方式同时加载模型和视图?
我也同意让初始视图生成将初始数据直接渲染到视图中是个好主意。 通常,这会产生比单独的AJAX调用+之后填充数据的JavaScript更好的性能。
但我也认为这取决于您正在加载的页面类型。 如果您的应用程序主要是基于AJAX(SPA样式模型),那么第一次加载可能不是那么重要,因为它只发生一次,并且可能需要花费额外的时间。 通过AJAX或传统的View操作以一种方式加载所有数据会更容易一些。 当您的客户端代码要求您重新加载列表或记录的整个数据集时,您最终不会复制模板/视图逻辑以生成该输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.