asp.net-mvc-4 – 使用Durandal的会话数据

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-4 – 使用Durandal的会话数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚开始使用Durandal.js,请原谅我这个愚蠢的问题……

用户向应用程序提出第一个请求时,系统会要求他们选择“配置文件类型”,我需要它可以访问网站中的每个其他视图模型,我首先要在shell视图模型中创建此属性,但不要怎么做.

如何在Durandal SPA中以类似会话的方式存储数据的最佳方式?

谢谢!

解决方法

为您需要存储的数据创建一个amd模块.

然后只需要将该模块作为任何其他需要它的模块的依赖项.

有点像:

会话模块

define(function () {
    return {
        someVariable: 'value1',someVariable2: 'value2'
    }
})

其他一些模块

define(['session'],function(session) {
    return {
        getValue1: function () {
            return session.someVariable;
        },obs1: ko.observable(session.someVariable2)
    }
})

编辑**
AMD模块不会污染窗口对象的全局命名空间.但是如果你不想要你的会话作为依赖,只是通过一个全局变量访问它,那就完全没问题了.

你可以在shell.js中声明它,如果你愿意并做一些像:

define(function () {
    window.session = { someVariable: 'value1',someVariable2: 'value2' };
})

然后在其他模块中,您可以访问会话对象,如下所示:

define(function() {
    return {
        getValue1: function () {
            return session.someVariable;
        },obs1: ko.observable(session.someVariable2)
    }
})

页面刷新之间不会保留此信息..它只在内存中.
如果您希望保留会话数据,我不会考虑在客户端上保留任何信息,除非您计划将您的应用程序设置为离线应用程序.
离线应用程序是一个甚至无法访问互联网的应用程序.但是,如果您的应用要求用户始终连接到互联网,那么我只会将会话数据存储在服务器上.因此,只需使用Web服务来保存会话数据并检索它.

您可以使用cookie将服务器上的会话绑定到客户端.

原文链接:https://www.f2er.com/aspnet/250983.html

猜你在找的asp.Net相关文章