![](/img/trans.png)
[英]Alternative to HttpContext.Current.Items in ASP.NET Web Api
[英]Asp.net HttpContext.Current.Items returning null
我正在测试构建一个asp.net Web应用程序。 我有3个网页:
Default.aspx;
Home.aspx;
ThirdPage.aspx;
当用户将登录数据提交到Default.aspx时,我从db检索用户信息,将其放在一个类中,然后像这样将其添加到Context中。
HttpContext.Current.Items.Add("UserData", userData);
然后,我使用Server.Transfer将请求发送到Home.aspx。 在Home.aspx上,我有一个指向ThirdPage.aspx的链接。 我单击此链接,希望这里也可以提供用户信息,但实际上没有。 我希望在Web应用程序中所有页面的整个用户会话中保留userdata类,直到用户会话过期为止。 可以请一个人指导吗? 这可能是一个初学者的问题,所以请客气。 谢谢
我不确定确切的问题可能是什么,但是我有一些可行的解决方案。 如果我没记错的话,您尝试通过几个页面获取用户信息?
以下是完成此操作的一些方法:
但是我个人最喜欢的是拥有一个静态类。 静态类可以从任何地方访问。 由于页面上显示在这里 。
公共静态类Globals
{ public static String name; public static int age; public void SetName(){...} public void SetAge(){...} public String GetName(){...} public int GetName(){...} }
只需将其设置为可变类即可(您可以使用函数来更改变量),并且应该很容易跨页面获取用户信息。
公共无效SaveInfo(用户){
//转换为Json字符串json = JsonConvert.SerializeObject(user,Formatting.Indented);
//Write to file, you will have to create a file serverside if you want //if you have a File.WriteAllText(@"location.json", json);
}
公共无效LoadUser(){使用(StreamReader r = new StreamReader(“ Location.json”)){字符串json = r.ReadToEnd(); 列表项= JsonConvert.DeserializeObject>(json); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.