以下是我从XML页面检索并将其存储在cookie中的页面,我想在另一个页面中检索它。
public partial class shopping : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie userCookie = new HttpCookie("user");
userCookie["quantity"] = TextBox1.Text;
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("shopping_cart.xml"));
XmlNode root = doc.DocumentElement;
if (RadioButton1.Checked)
{
string str1 = doc.GetElementsByTagName("cost").Item(0).InnerText;
userCookie["cost"] = str1;
//Label3.Text = str1;
Response.Redirect("total.aspx");
}
}
}
这是我试图检索它的其他页面(total.aspx.cs):
public partial class total : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
**Label2.Text = Request.Cookies["user"]["quantity"];**
}
}
我在粗线上获得了Null参考。关于我该怎么做的任何建议?
答案 0 :(得分:2)
您在第一部分中创建了Cookie,但忘记将其附加到Response
。
Response.Cookies.Add(userCookie); // place before your Response.Redirect
另外,请注意,Cookie的最大大小为4000字节,否则可能不是您正在做的最佳选择。您可能希望在Session
中存储临时会话信息,以便在页面之间进行访问,而不是使用cookie。
Session["quantity"] = TextBox1.Text
// ...
Session["cost"] = str1;
并在第二页
Label2.Text = Session["quantity"] as string;