asp.net 会话未传递到另一页

k4aesqcs  于 2023-05-08  发布在  .NET
关注(0)|答案(4)|浏览(208)

我尝试使用会话将信息从一个页面传递到另一个页面,实际发送发生在单击发送按钮时,如下所示:

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;

    }

它不工作,在接收页面我没有得到任何输出。
有人能帮忙吗?
谢谢你

3okqufwl

3okqufwl1#

应该是。。

Session["Name"] = Name;
Session["Email"] = EmailAddress;
Session["Subject"] = Subject;
Session["Message"] = MessageBody;
t9aqgxwy

t9aqgxwy2#

问题似乎源于未为会话设置的某些设置。
您是否在web.config中为pages标记设置了enableSessionState="true"。同时尝试将会话添加到httpmodules部分:

<add name="Session" type="System.Web.SessionState.SessionStateModule"/>

还有一件事要做的是尝试使用Context.RewritePath而不是Server.Transfer

eni9jsuy

eni9jsuy3#

您没有为会话变量使用相同的名称。Messagrbody和message在设置和获取时不同。

11dmarpk

11dmarpk4#

尝试将这一行添加到web.config文件中:

httpCookies httpOnlyCookies="false" requireSSL="false"

相关问题