我尝试使用会话将信息从一个页面传递到另一个页面,实际发送发生在单击发送按钮时,如下所示:
protected void btnContactMsgSend_Click(object sender, EventArgs e)
{
Name = txtName.Text;
EmailAddress = txtEmailAddress.Text;
Subject = txtSubject.Text;
MessageBody = txtMssgBody.Text;
Session.Add("Name", Name);
Session.Add("Email", EmailAddress);
Session.Add("Subject", Subject);
Session.Add("MessageBody", MessageBody);
try
{
Server.Transfer("~/UserPages/ContactUsConfirm.aspx");
}
catch (Exception exc)
{
MessageBody = Environment.NewLine + "Error occurred" + exc.ToString() ;
}
}
在接收页面中,我执行以下操作:
public void printStackTrace(Object,Object){
string name = null;
string email = null;
string subject = null;
string message = null;
try
{
name = Convert.ToString(Session["Name"]);
email = Convert.ToString(Session["Email"]);
subject = Convert.ToString(Session["Subject"]);
message = Convert.ToString(Session["MessageBody"]);
}
catch (Exception ex)
{
txtOutput.Text = Environment.NewLine + ex.ToString(); // edited exception
name = "Missing name";
email = "Missing e-mail";
subject = "Missing subject";
message = "Missing message";
}
txtOutput.Text = Environment.NewLine + name;
txtOutput.Text = Environment.NewLine + email;
txtOutput.Text = Environment.NewLine + subject;
txtOutput.Text = Environment.NewLine + message;
}
它不工作,在接收页面我没有得到任何输出。
有人能帮忙吗?
谢谢你
4条答案
按热度按时间3okqufwl1#
应该是。。
t9aqgxwy2#
问题似乎源于未为会话设置的某些设置。
您是否在web.config中为
pages
标记设置了enableSessionState="true"
。同时尝试将会话添加到httpmodules
部分:还有一件事要做的是尝试使用
Context.RewritePath
而不是Server.Transfer
。eni9jsuy3#
您没有为会话变量使用相同的名称。Messagrbody和message在设置和获取时不同。
11dmarpk4#
尝试将这一行添加到
web.config
文件中: