会话和Cookie检索名字和姓氏欢迎消息
本文关键字:消息 Cookie 检索 会话 | 更新日期: 2023-09-27 18:22:00
尝试处理这个程序,理论上它应该检索"Welcome"lblMessage的名字和姓氏。在ASP.NET.中使用Cookie
它IS所做的只是检索["FirstName"]。我需要这两个。
订单.aspx。cs
protected void Page_Load(object sender, EventArgs e){
string firstName = (string)Session["FirstName"];
string lastName = (string)Session["LastName"];
if ((firstName != null) && (lastName != null))
{
lblWelcome.Text = "Welcome back, " + (string)Session["FirstName"] + (string)Session[" LastName"] + "!";
}
}
CheckOut.aspx。cs
protected void Page_Load(object sender, EventArgs e)
{
// get entry data from cookies
//if (Request.Cookies["FirstName"] != null)
// txtFirstName.Text = Request.Cookies["FirstName"].Value;
//if (Request.Cookies["LastName"] != null)
// txtLastName.Text = Request.Cookies["LastName"].Value;
//get entry data from session state
if (!IsPostBack)
{
string firstName = (string)Session["FirstName"];
if (firstName != null) txtFirstName.Text = (string)Session["FirstName"];
string lastName = (string)Session["LastName"];
if (lastName != null) txtLastName.Text = (string)Session["LastName"];
txtFirstName.Focus();
}
}
private void LoadCustomerData()
{
Session["FirstName"] = txtFirstName.Text;
Session["LastName"] = txtLastName.Text;
}
在几个部分中[不显示整个代码],这就是我迄今为止所拥有的内容。
想知道是否有人能重新审视这件事,看看我做错了什么?
最有可能的候选者是拼写错误,如果不查看所有代码,很难发现。我建议删除"魔术字符串"(即Session["FirstName"]
),并为会话变量名声明一些常量:
[in some static class]
public const string FirstNameKey = "FirstName";
public const string LastNameKey = "LastName";
然后一致地引用这些密钥:
Session[FirstNameKey] = txtFirstName.Text;
实际上,我通常使用GUID作为名称(例如public const string FirstNameKey = "49b63214-1812-4ba3-9ace-ae423c682d7c";
,这样就不会在应用程序中重复它们
问题是cookie名称中的一种类型:Session[" LastName"]
代替
string firstName = (string)Session["FirstName"];
... = (string)Session["FirstName];
使用
string firstName = (string)Session["FirstName"];
... = firstName;