Asp.net mvc 2 在多个局部视图中具有模型的淘汰JS

Asp.net mvc 2 在多个局部视图中具有模型的淘汰JS,asp.net-mvc-2,knockout.js,partial-views,knockout-2.0,knockout-mvc,Asp.net Mvc 2,Knockout.js,Partial Views,Knockout 2.0,Knockout Mvc,我在一个页面中加载4个部分视图。在单独的div中包含所有局部视图的主页面,每个局部视图都有自己的淘汰模型。我遇到的问题是,单个的敲除模型不能绑定文本字段的值 我想保持页面分开,这样主页就不会那么杂乱,也不会与局部视图紧密耦合。这基本上是之前完成的这4页的总结 似乎我无法拉出淘汰模型,因为它们需要来自控制器的信息来填充部分视图,我不想将部分视图拉到这个页面中 基本上,我希望加载带有自己的淘汰模型的局部视图,并具有所需的功能 在您的例子中,您可能希望使用第二个参数来ko.applyBindings

我在一个页面中加载4个部分视图。在单独的div中包含所有局部视图的主页面,每个局部视图都有自己的淘汰模型。我遇到的问题是,单个的敲除模型不能绑定文本字段的值

我想保持页面分开,这样主页就不会那么杂乱,也不会与局部视图紧密耦合。这基本上是之前完成的这4页的总结

似乎我无法拉出淘汰模型,因为它们需要来自控制器的信息来填充部分视图,我不想将部分视图拉到这个页面中


基本上,我希望加载带有自己的淘汰模型的局部视图,并具有所需的功能

在您的例子中,您可能希望使用第二个参数来
ko.applyBindings

第二个参数允许您传递一个DOM元素,该元素要用作要绑定的根元素

因此,如果将局部视图加载到以下元素中:

<div id="one">
...
</div>
<div id="two">
....
</div>

在每个局部视图中,在页面的最底部放置一些JavaScript

<script type="text/javascript">
    ko.applyBindings(viewModelObject, document.getElementById("someDivId")); 
</script>

applyBindings(viewModelObject,document.getElementById(“someDivId”);
这将在正确的时间应用绑定。否则,由于视图加载的异步方式,绑定将无法工作


注意:viewModelObject应该在主视图以及常规ko include文件中定义。

我已经这样做了,但它仍然无法满足我在局部视图中应用绑定的需要。为了清楚起见,我在部分视图中调用ko.applybindings,因为它们包含它们的模型。那么,在部分视图中的内容被填充(或作为部分视图的一部分内联)后,您是否在没有第二个参数的情况下调用ko.applybindings?。如果您已经正确绑定了各个容器,那么您可能需要共享更多代码来确定绑定失败的原因。我认为解决方案是有一个大模型,其中包含表示部分的对象,然后在创建大模型时,我使用ajax获取部分并将其加载到它们的div中,然后通过大模型中的对象引用部分,这是一个选项(在容器上使用带有的绑定非常有帮助),但也支持对每个容器应用绑定。我仍然不太清楚您看到了什么问题。控制台中有错误吗?您有任何示例代码吗?您能向我们展示您迄今为止尝试的代码吗?
<script type="text/javascript">
    ko.applyBindings(viewModelObject, document.getElementById("someDivId")); 
</script>