我最近才研究了 Ajax(专家们笑我),我对所有添加的功能感到兴奋。但有一些担忧。
表单提交
在 Ajax 示例中,一个 json 对象要么自动创建(序列化表单),要么通过从每个 DOM 项中检索 val() 手动构建。并且使用javascript执行数据验证。我认为我们可能仍然可以使用 Html.EditorFor (和 Html.TextboxFor 等)来构建表单。但是是否仍然可以使用模型/视图模型上添加的 DataAnnotation 属性?我见过的 MVC+Ajax 示例通常不执行任何类型的服务器端验证。可以省略那部分吗?我想这很好,因为用户现在必须启用 javascript 才能提交表单。但是我们需要一些专业的建议。
查看模型
在 Ajax 世界中,视图模型通常表示为 JSON 对象。(如果我错了,请纠正我。)那么,在我们的域模型和视图模型之间映射的最佳方式是什么?有没有像 AutoMapper 这样的工具?
好的,我需要在这里添加一些东西............
引起这种担忧的原因是我发现一些示例使用了一些名为
Knockout.js
(参见其网站)的东西,而不是return Json(model)
将我们的视图模型的 json 对象返回到$.Ajax
调用中,它的示例显示视图模型是用 javascript 构建的。// 这是一个简单的 *viewmodel* - 定义 UI 数据和行为的 JavaScript 函数 AppViewModel() { this.firstName = "伯特"; this.lastName = "伯廷顿"; } // 激活 knockout.js ko.applyBindings(new AppViewModel());
这种做法有什么好处?
----我的更新结束----
感谢您提供任何有用的建议。