可以将参数从viewmodel传递到其他页面吗?

时间:2014-02-18 13:13:31

标签: jquery asp.net-mvc-4 knockout.js

是否可以将viewmodel中的可观察和可观察数组作为参数传递给其他页面或json?

假设我有几个字段,当我按下一个按钮时,它会重定向到另一个页面并显示参数。

这可以通过knockout / jquery完成,还是我需要发布到控制器并从那里重定向?

我们的想法是将信息传递到确认页面,然后从那里继续提交给控制器。

感谢正手!

2 个答案:

答案 0 :(得分:1)

我甚至会说你不应该做其中任何一件事。它闻起来像糟糕的设计。

我不久前回答了同样的问题(或至少非常相似),我认为答案也适用于此: durandal : best way to pass data between ViewModels

编辑:我读过你的目标是什么。在这种情况下,我会采用不同的方法:永远不要离开页面。只需在当前视图中内联创建确认“页面”,并设置一个标志以确定是否应显示表单或确认。这将节省大量开销,并且在客户端也会更具响应性。

编辑2:提出您的请求:http://jsfiddle.net/7zp5K/33/

基本上诀窍就在于你的viewmodel上的submit函数,我交换了observable showConfirm。在您的HTML中,我创建了2个“视图”(div)。根据{{​​1}}的状态显示只有一个。

在确认视图中,我使用showConfirm绑定来显示所选项目。

答案 1 :(得分:0)

如果我理解你的问题,你试图将ViewModel从一个页面传递到另一个页面。如果是这种情况,则不可能立即进行。您必须根据接收的数据(查询字符串,JSON或任何其他数据格式)在重定向页面中创建ViewModel。

如果数据很小,您可以通过querystring传递数据,并在重定向的页面中相应地创建一个viewmodel。否则,使用表单发布提交数据。它更多是要求特定的,而不是 knockout 特定的。