使用Session抛出异常传递变量

本文关键字:变量 抛出异常 Session 使用 | 更新日期: 2023-09-27 18:08:19

我有一个表格需要客户填写,所以我决定把它做成一个数字表格。我有三个页面subscriber_details, Package_Selection和Bank_Details。当用户在第一个页面中填写了所有字段,然后点击下一个页面,页面就会进入下一个页面,直到所有三个字段都填好,当所有三个字段都填好后,他们会跳转到最后一个页面,在那里他们的所有详细信息都会最后一次呈现给他们,这样他们就可以确保它是正确的……在我的订阅详情。我有下面的代码来存储他们的详细信息到会话

protected void btnNext_Click(object sender, EventArgs e)
{
    Session["FullName"] = txtFullName.Text;
    if (txtCompanyName.Text == String.Empty)
        Session["CompanyName"] = "N/A";
    else
    Session["CompanyName"] = txtCompanyName.Text;
    if (txtVAT.Text == String.Empty)
        Session["VAT"] = "N/A";
    else
    Session["VAT"] = txtVAT.Text;
    Session["ContactNumber"] = txtContactNumber.Text;
    if (txtFax.Text == String.Empty)
        Session["Fax"] = "N/A";
    else
        Session["Fax"] = txtFax.Text;
    if (txtDistrict.Text == String.Empty)
        Session["District"] = "N/A";
    else
        Session["District"] = txtDistrict.Text;
    Session["City"] = txtCity.Text;
    Session["Street"] = txtStreet.Text;
    Session["Code"] = txtPostal.Text;
    if (txtTrading.Text == String.Empty)
        Session["Trading"] = "N/A";
    else
    Session["Trading"] = txtTrading.Text;
    Session["ID"] = txtID.Text;
    Session["ContactPerson"] = txtContactPerson.Text;
    if (txtEmail.Text == String.Empty)
        Session["Email"] = "N/A";
    else
    Session["Email"] = txtEmail.Text;
}

然后在我的期末考试。我有以下代码来使用会话并替换标签

中的文本
protected void Page_Load(object sender, EventArgs e)
{
    lblFullName.Text = Session["FullName"].ToString();
    lblCompanyName.Text = Session["CompanyName"].ToString();
    lblVat.Text = Session["VAT"].ToString();
    lblContactNumber.Text = Session["ContactNumber"].ToString();
    lblFax.Text = Session["Fax"].ToString();
    lblDistrict.Text = Session["District"].ToString();
    lblStreet.Text = Session["Street"].ToString();
    lblCity.Text = Session["City"].ToString();
    lblCode.Text = Session["Code"].ToString();
    lblTrading.Text = Session["Trading"].ToString();
    lblID.Text = Session["ID"].ToString();
    lblContactPerson.Text = Session["ContactPerson"].ToString();
    lblMail.Text = Session["Email"].ToString();

}

由于某种原因,我得到一个"对象引用错误",这是因为我的最终。aspx页不是我的下一页,因为我必须通过我的包。Aspx和bank_details。aspx第一?

我已经在会话上要求字段验证器,没有一个if语句,所以文本不会是空的

使用Session抛出异常传递变量

您没有设置所有的Session变量。例如,您没有设置Session["Email"],因此对lblMail.Text = Session["Email"].ToString();的调用将抛出异常。

你应该填充所有的会话变量,你想使用,也检查他们不是空之前做.ToString()