Asp.net-MVC中Session和ViewData有什么区别?
我什么时候应该使用其中一种而不是另一种?我想在启动时缓存某个对象并在应用程序中重用。哪个听起来是更好的解决方案(ViewData 或 Session)?
When should I use one versus the other? I want to cache a certain object on startup and reuse around the application. Which sounds like the better solution (ViewData or Session)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ViewData
是一个每个请求对象,用于将信息从控制器发送到视图。每个动作调用都有自己的ViewData; ViewData 不会持续到视图之外。
会话状态是一个每用户存储容器,允许您存储数据对于特定用户会话(由 cookie 标识)
如果您想共享全局对象,您可能应该将其设为单例(在
static
属性中)或将其置于应用程序状态。确保确保它是线程安全的。 (或者小心使用
[ThreadStatic]
字段)ViewData
is a per-request object used to send information from the controller to the view.Each action invocation gets its own ViewData; the ViewData doesn't last beyond the view.
Session State is a per-user storage container which allows you to store data for a specific user session (identified by a cookie)
If you want to share a global object, you should probably make it a singleton (in a
static
property) or put it in Application state.Make sure that it's thread-safe. (Or use a
[ThreadStatic]
field carefully)