【发布时间】:2013-01-05 12:19:26
【问题描述】:
我有一个数组列表,我在其中添加了一个代码列表。当我重定向到不同的页面(aspx)时,我希望能够从其他页面访问添加到数组列表中的这些代码。
除了创建单独的 Class.cs 文件之外,这是最简单的方法。
问候
【问题讨论】:
我有一个数组列表,我在其中添加了一个代码列表。当我重定向到不同的页面(aspx)时,我希望能够从其他页面访问添加到数组列表中的这些代码。
除了创建单独的 Class.cs 文件之外,这是最简单的方法。
问候
【问题讨论】:
您可以使用Session 变量:
ArrayList myArrayList = new ArrayList();
//add items to arraylist
Session["MyArrayList"] = myArrayList;
然后只需在第二页上切换它即可将其取回:
ArrayList myArrayList = Session["MyArrayList"] as ArrayList;
//check to see if arraylist is null before using it
if (myArrayList != null)
{
//array list is not null, safe to use
}
【讨论】:
... = Session["MyArrayList"] as ArrayList;。这样,如果由于某种原因会话变量为空,您就不会抛出错误。用户总是喜欢优雅的错误处理:)。
为此,您需要使用 Session,我建议使用以下代码:
您从其重定向到另一个页面的第 1 页代码:
System.Collections.ArrayList objArrayList = new System.Collections.ArrayList();
objArrayList.Add("DEMO1");
objArrayList.Add("DEMO2");
Session["ArrayList"] = objArrayList;
您从另一个页面重定向到的第 2 页代码:
System.Collections.ArrayList objArrayList1 = Session["ArrayList"] as System.Collections.ArrayList;
【讨论】:
即使有一个单独的class,你想要的也不能直接发生(除非它是一个静态属性)。每个请求都会重新创建您的对象。
解决方法是将您的ArrayList 存储在Session 中。有关会话状态的详细信息,请参阅此 MSDN 链接:http://msdn.microsoft.com/en-us/library/ms178581(v=vs.100).aspx
【讨论】: