【发布时间】:2014-03-28 18:13:12
【问题描述】:
我正在尝试使用会话将信息从一个页面传递到另一个页面,实际发送发生在单击这样的发送按钮时:
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() ;
}
}
在接收页面中,我执行以下操作:
protected void Page_Load(object sender, EventArgs e) {
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;
}
它不起作用,在接收页面我没有得到任何输出。
谁能帮忙?
谢谢
【问题讨论】:
-
一目了然,我发现在
btnContactMsgSend_Click中,您将名称会话变量设置了 4 次。这会导致问题。 -
正如@paqogomez 所说,这可能是在 4 个不同时间设置名称的问题。取而代之的是,您不创建具有这些属性的类并通过会话传递该对象吗?
-
那么,这只是复制粘贴错误吗?还是解决了问题?
-
@paqogomez 你好,谢谢你的回答,我刚刚复制并粘贴了 quicklky 没有注意......现在我已经编辑了上面的代码,但它也不起作用。我也测试过像 Session["Name"] = Name;会话[“电子邮件”] = 电子邮件地址; ...但它也不起作用
-
当您说“它不起作用”时,您会得到什么?有例外吗?
标签: c# asp.net session webforms