通过Knockout使用MVVM的asp.net MVC,将模型传递给j​​avascript

我正在写一个MVC应用程序,我已经决定Knockout.js将帮助解决我的很多问题,除了在这个过程中,它已经创建了一个我正在解决问题的新问题.

我将所有MVC端点转换为仅返回视图,然后我创建了几个返回JSON对象的端点.当用户浏览网站时,该网站会加载基本UI框架.之后,Knockout.js通过AJAX调用加载模型.这导致每个页面都被加载,然后再次“加载”,就像加载页面的MVC和所有数据一样.

我一直在研究如何同时加载两者,但我没有找到任何不需要我完全重构网站的东西.最好的选择是:

>将JSON端点合并到视图端点,并使用@ Html.Raw(Json.Encode(object))将模型转换为代码隐藏中的JSON

但是我必须得到所有纯JSON端点.

我还能做些什么来将JSON端点数据传递到服务器端的视图吗?或者以任何方式同时加载模型和视图?

解决方法

您的体系结构是正确的,但您希望初始加载使用模型中的数据预先填充视图.在刚刚返回视图的控制器操作中,您应该将数据放入ViewData中.然后,视图最初使用Model值加载,并且每个UI元素都可以具有AJAX更新,该更新调用该特定字段的Controller操作.

这也可能是ideal case for a ViewModel.这可能有助于as well.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....