【问题标题】:KnockoutJS viewModel binding on multiple pages多个页面上的 KnockoutJS viewModel 绑定
【发布时间】:2016-09-19 06:01:12
【问题描述】:
我正在开发一个 ASP MVC Web 应用程序。在主页上,我创建了一个淘汰模型,动态更改它的一些属性,然后我想进入另一个页面,并以某种方式传递那个确切的 viewModel。我遇到了问题,因为当第二个页面加载时,一个新的 viewModel 被初始化,因此,我想要的属性丢失了。
var viewModel = new gameViewModel();
ko.applyBindings(viewModel);
这就是我初始化模型的方式。有任何想法吗?
我不确定您需要什么代码来帮助我,所以请询问所需的信息。谢谢。
【问题讨论】:
标签:
c#
asp.net-mvc
knockout.js
【解决方案1】:
基本上,您有三个选择:
-
在浏览器中存储状态,例如使用 cookie 或 localStorage;
-
在导航时将状态发布到服务器,例如使用表单数据或查询字符串,并让新页面重新呈现该数据以供您的 JS 使用;
-
使用状态机制服务器端,例如SessionState,并在每次页面加载时重新加载它。
这是对您有些宽泛的问题的直接答案。对于更具体的答案,我建议您先尝试一下,然后再提出更具体的问题。
PS。 LocalStorage 是最简单的入门方式,但是否适合取决于浏览器要求、安全性、是否也需要保存状态服务器端以及其他上下文。