gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 中的 session 变量

转载 作者:行者123 更新时间:2023-12-03 04:17:32 24 4
gpt4 key购买 nike

我正在编写一个 Web 应用程序,该应用程序将允许用户浏览网站内的多个网页并发出某些请求。用户输入的所有信息都将存储在我创建的对象中。问题是我需要从网站的任何部分访问这个对象,但我真的不知道实现此目的的最佳方法。我知道一种解决方案是使用 session 变量,但我不知道如何在 asp .net MVC 中使用它们。我在哪里声明 session 变量?还有其他办法吗?

最佳答案

我认为您会想要考虑事物是否真的属于 session 状态。这是我发现自己时不时做的事情,对于整个事情来说这是一个很好的强类型方法,但是在将内容放入 session 上下文中时应该小心。并非所有内容都应该仅仅因为属于某个用户而存在。

在 global.asax 中 Hook OnSessionStart 事件

void OnSessionStart(...)
{
HttpContext.Current.Session.Add("__MySessionObject", new MySessionObject());
}

从代码中 HttpContext.Current 属性 != null 的任何位置,您都可以检索该对象。我使用扩展方法来做到这一点。

public static MySessionObject GetMySessionObject(this HttpContext current)
{
return current != null ? (MySessionObject)current.Session["__MySessionObject"] : null;
}

这样你就可以在代码中

void OnLoad(...)
{
var sessionObj = HttpContext.Current.GetMySessionObject();
// do something with 'sessionObj'
}

关于asp.net-mvc - ASP.NET MVC 中的 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/560084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com