【发布时间】:2015-03-24 22:33:21
【问题描述】:
所以我想知道,在项目的页面之间传递数据的各种方式的优缺点是什么。
我知道:
- Sessions:我不能使用它,因为我的项目需要部署在 Azure 之类的平台上,Sessions 不适合多服务器部署。
- 在各种 actionresults 之间传递参数:这很好用,但这样做可能非常乏味...
- Cookie:我打算在我的项目中使用它,但我了解到这不是最佳做法?
所以我想知道你们正在使用什么技术(以及为什么),所以我可以决定我将使用什么技术。
例如:我的用户已登录并且对于几个 ActionResults 我需要 UserId 来访问 userRepository,最好的方法是什么。或者甚至有一种将用户作为对象的好方法(这样我就不必一直访问数据库了)?我已经建立了一个登录系统并且它工作正常,但是用户没有被存储在某个地方吗?还是只存储用户的一些数据?例如,我正在使用它:
FormsAuthentication.SetAuthCookie(user.Email, false);
提前致谢!
【问题讨论】:
-
您可以在 Windows Azure 上使用会话状态,但由于它是进程外的,这意味着所有会话状态对象都必须是可序列化的。
-
另外,我们在谈论什么样的数据?您将根据上下文使用每个建议的选项,您不能将一个替换为另一个,例如,对大量数据使用 cookie 或 URI 参数是完全不合适的。
-
我说的是简单的变量,比如用户名等。
-
这取决于你想做什么,你能举个例子吗?
-
Burt 我在 Op. 中添加了一个示例
标签: c# asp.net-mvc parameter-passing