C# 显示会话数组中的值
我不熟悉asp.net和c。我正在使用会话数组将值列表存储到会话中。但是,当我尝试使用response.write方法显示值时,它不会在会话中给出确切的值,而是显示“System.Collections.ArrayList”。我用来在会话中添加值的代码如下所示C# 显示会话数组中的值,c#,asp.net,session,web,web-deployment,C#,Asp.net,Session,Web,Web Deployment,我不熟悉asp.net和c。我正在使用会话数组将值列表存储到会话中。但是,当我尝试使用response.write方法显示值时,它不会在会话中给出确切的值,而是显示“System.Collections.ArrayList”。我用来在会话中添加值的代码如下所示 protected void Page_Load(object sender, EventArgs e) { if (Session["Cart"] == null) { Session["Cart"]
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Cart"] == null)
{
Session["Cart"] = new ArrayList();
}
else
{
ArrayList cart = (ArrayList)Session["Cart"];
}
}
protected void addtocart_Click(object sender, EventArgs e)
{
int dealid = Convert.ToInt32(Request.QueryString.Get("deal"));
ArrayList cart1 = new ArrayList();
cart1 = (ArrayList)Session["Cart"];
cart1.Add(dealid);
Session["Cart"] = cart1;
Response.Write(Session["Cart"].ToString());
}
}
有人能帮我显示会话中存储的值吗。请..因为您已将ArrayList放入会话。然后,当您调用会话[“购物车”]时,它将其返回给您。如果要显示该列表中的所有项目,则需要如下迭代:
protected void addtocart_Click(object sender, EventArgs e)
{
int dealid = Convert.ToInt32(Request.QueryString.Get("deal"));
ArrayList cart1 = new ArrayList();
cart1 = (ArrayList)Session["Cart"];
cart1.Add(dealid);
Session["Cart"] = cart1;
// iterate items in session
ArrayList cart = Session["Cart"] as ArrayList;
foreach(var item in cart)
{
Response.Write(item.ToString());
}
}
还有一件事,那就是使用
List<int>
列表
比ArrayList更有用、更好,因为您不需要将对象强制转换为所需的类型。无需在
会话[“Cart”]=cart1中将cart1分配回会话代码>。要打印dealid,您需要编写类似于Response.write(会话[“Cart”][0].ToString())的内容代码>迭代arraylist并生成必要的字符串
StringBuilder sb = new StringBuilder();
foreach(var obj in cart1)
{
sb.Append(obj.ToString())
}
Response.Write(sb.ToString());
VisualStudio中有一个调试功能。在代码中设置断点。运行项目并使用F10或F11逐步完成代码。单击某个值并查看其内容。更多信息 您不能响应.写入(会话[“购物车”].Tostring())
,因为会话[“购物车”]
是ArrayList。在响应之前,必须循环遍历该arraylist。请按如下方式编写:
protected void addtocart_Click(object sender, EventArgs e)
{
int dealid = Convert.ToInt32(Request.QueryString.Get("deal"));
ArrayList cart1 = new ArrayList();
cart1 = (ArrayList)Session["Cart"];
cart1.Add(dealid);
Session["Cart"] = cart1;
ArrayList cart2 = new ArrayList();
cart2 = (ArrayList)Session["Cart"];
foreach(var item in cart2 )
{
Response.WriteLine(item);
}
}对于使用以下代码的阵列中的显示阵列列表项:
foreach (var item in (ArrayList)Session["Cart"])
{
Response.Write(item);
}
您需要创建一个循环来显示会话中的所有值
private ArrayList cart
{
get
{
if (Session["Cart"] == null)
{
Session["Cart"] = new ArrayList();
}
return (ArrayList)Session["Cart"];
}
set
{
Session["Cart"] = value;
}
}
protected void addtocart_Click(object sender, EventArgs e)
{
int dealid = Convert.ToInt32(Request.QueryString.Get("deal"));
cart.Add(dealid);
foreach (var item in cart)
{
Response.Write(item.ToString());
}
}