我有一张表格供客户填写,所以我决定把它变成一个数字形式。我有三页subscriber_details,Package_Selection和Bank_Details。当用户填写了第一个中的所有字段并点击下一个页面时,页面前进到下一个页面,直到所有三个字段都已填满,当所有三个字段都填满时,它们会指向最终页面,其中所有细节都会最后一次显示给他们,以便他们可以确保其正确...在我的subscriber_details.aspx上我有以下代码将他们的详细信息存储到会话中
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;
}
然后在我的final.aspx上我有以下代码来使用会话并替换标签中的文字
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();
}
由于某种原因我收到“对象引用错误”,是因为我的final.aspx页面不是我的下一页,因为我必须首先通过我的package.aspx和bank_details.aspx?
我在没有if语句的会话上需要字段验证器,因此文本不会为空
答案 0 :(得分:0)
您没有设置所有会话变量。例如,您尚未设置Session["Email"]
,因此对lblMail.Text = Session["Email"].ToString();
的调用将抛出异常。
您应该填充要使用的所有会话变量,并在执行.ToString()
之前检查它们是否为空。这应该更优雅地抓住它。