javascript - Knockout 和 ASP.NET MVC 多页面

标签 javascript c# asp.net asp.net-mvc knockout.js

我对 knockout 还很陌生,在应用绑定(bind)和多个 View 时,我不知道如何使用 ASP.NET MVC 最好地构建 knockout 。我了解如何在单页应用程序中做到这一点。但我的应用程序由多个服务器端 Controller 和多个 View 组成。每个 View 都可以有自己的 knockout View 模型。

我应该何时以及如何应用绑定(bind)?我最后加载所有 JavaScript,这意味着我无法内联调用我的 View 模型。

使用某种 MasterViewModel 然后在我的 View 中使用 with 绑定(bind)是一个好习惯吗(这是我能想到的唯一解决方案)?

最佳答案

是的,这是一个很好的实践,因为如果您尝试为多个 View 创建单个 View 模型,那么一切看起来都很复杂并且可读性会丢失(完全取决于复杂程度)。

你必须尝试这样的事情才能使事情变得可读且简单

查看模型:

var MasterViewModel = {
    vm1 : new ViewModel1(),
    vm2 : new ViewModel2(),
    vm3 : new ViewModel3(),
    vm4 : new ViewModel4(),
}

ko.applyBindings(MasterViewModel);

另一种可能的方法可以很好地工作,只需向 ko.applybindings 添加额外的参数来区分哪个 View 属于哪个 View 模型

示例:

//view
<div id='viewmodel1'>
</div>
<div id='viewmodel2'>
</div>

var vm1 = function(){ //code}
var vm2 = function(){ //code}

ko.applyBindings(new vm1(), document.getElementById("viewmodel1"));
ko.applyBindings(new vm2(), document.getElementById("viewmodel2"));

如果我记得足够清楚,stack-overflow 中很少有类似的帖子,您可以引用

关于javascript - Knockout 和 ASP.NET MVC 多页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755724/

相关文章:

javascript - JQuery 超时或端点计数

c# - Linq中的高级过滤

jquery - 如何扩展并添加到 .NET Core 中的 IFormFile 接口(interface)。提交ajax请求时需要向序列化数组追加数据

c# - 每当请求该类的任何方法时自动调用公共(public)方法

asp.net - '/' 应用程序中的服务器错误 - 已添加具有相同 key 的项目

javascript - 尝试使用 API 从交易所获取价格

javascript - 如何使用 POST 和 XMLHttpRequest 将 JPEG 文件发送到服务器?

c# - 将字符串列表加入逗号分隔并用单引号括起来

javascript - 有类型的 &lt;script&gt; 标签和没有类型的 &lt;script&gt; 标签之间的区别?

c# - 如何在单击按钮时动态更改组框?