2013-04-10 56 views
0

我已经尝试设置我的会话值,但每次我想显示用户在之前的页面返回null变量传递空值

输入的文本我有三个页面用户的详细信息,套餐选择和银行详细信息,所有三个页面都相互关联,用户使用他/她所需的信息填充所有页面,然后单击,然后将它们导向显示所有信息的页面。

我似乎不能看到我做错了什么?

SubscriberDetails.aspx

protected void Button1_Click(object sender, EventArgs e) 
{ 
    string FullName = txtFullName.Text; 
    string CompanyName = txtCompanyName.Text; 
    string Vat = txtVAT.Text; 
    string ContactNumber = txtContactNumber.Text; 
    string Fax = txtFax.Text; 
    string District = txtDistrict.Text; 
    string Street = txtStreet.Text; 
    string City = txtCity.Text; 
    string Code = txtPostal.Text; 
    string Trading = txtTrading.Text; 
    string Id = txtID.Text; 
    string ContactPerson = txtContactPerson.Text; 
    string Email = txtEmail.Text; 

     Session["FullName"] = FullName; 
     Session["CompanyName"] = CompanyName; 
     Session["VAT"] = Vat; 
     Session["ContactNumber"] = ContactNumber; 
     Session["Fax"] = Fax; 
     Session["District"] = District; 
     Session["City"] = City; 
     Session["Street"] = Street; 
     Session["Code"] = Code; 
     Session["Trading"] = Trading; 
     Session["ID"] = txtID.Text; 
     Session["ContactPerson"] = ContactPerson; 
     Session["Email"] = Email; 

} 

Final.aspx

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (string.IsNullOrEmpty((string)Session["Fullname"])) 
    { 
     lblFullName.Text = "N/A"; 
    } 
    else 
    { 
     lblFullName.Text = Session["FullName"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["CompanyName"])) 
    { 
     lblCompanyName.Text = "N/A"; 
    } 
    else 
    { 
     lblCompanyName.Text = Session["CompanyName"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["VAT"])) 
    { 
     lblVat.Text = "N/A"; 
    } 
    else 
    { 
     lblVat.Text = Session["VAT"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["ContactNumber"])) 
    { 
     lblContactNumber.Text = "N/A"; 
    } 
    else 
    { 
     lblContactNumber.Text = Session["ContactNumber"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["Fax"])) 
    { 
     lblFax.Text = "N/A"; 
    } 
    else 
    { 
     lblFax.Text = Session["Fax"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["District"])) 
    { 
     lblDistrict.Text = "N/A"; 
    } 
    else 
    { 
     lblDistrict.Text = Session["District"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["Street"])) 
    { 
     lblStreet.Text = "N/A"; 
    } 
    else 
    { 
    lblStreet.Text = Session["Street"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["City"])) 
    { 
     lblCity.Text = "N/A"; 
    } 
    else 
    { 
     lblCity.Text = Session["City"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["Code"])) 
    { 
     lblCode.Text = "N/A"; 
    } 
    else 
    { 
    lblCode.Text = Session["Code"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["Trading"])) 
    { 
     lblTrading.Text = "N/A"; 
    } 
    else 
    { 
    lblTrading.Text = Session["Trading"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["ID"])) 
    { 
     lblID.Text = "N/A"; 
    } 
    else 
    { 
    lblID.Text = Session["ID"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["ContactPerson"])) 
    { 
     lblContactPerson.Text = "N/A"; 
    } 
    else 
    { 
    lblContactPerson.Text = Session["ContactPerson"].ToString(); 
    } 
    if (string.IsNullOrEmpty((string)Session["Email"])) 
    { 
     lblMail.Text = "N/A"; 
    } 
    else 
    { 
    lblMail.Text = Session["Email"].ToString(); 
    } 
} 
+0

是'string FullName = txtFullName.Text;'返回null,还是'Session [“Fullname”]'返回null? – Codeman 2013-04-10 21:15:46

+0

不是答案,但也许看看[三元运算符](http://msdn.microsoft.com/en-us/library/ty67wk28(v = vs.80).aspx)。这会简化你的代码,你可能会有类似'lblContactPerson.Text = string.IsNullOrEmpty((string)Session [“ContactPerson”])? “N/A”:Session [“ContactPerson”]。ToString();'这样你就没有if语句页面。 – spy890 2013-04-10 21:20:24

回答

2

那么你没有太多的选择有,如果是发生你与你会话的问题。也许每个其他请求都启动一个新会话,请检查以确保它不会发生。

检查用:

Session.SessionID; 
0

我看到的使用TextBox控制代码一块和下使用Label控制。

你不是,也许是读错了,是吗?

这只是一个供参考:如果我们填写“N/A”等值,我们会在我们的网站上收到客户投诉。大多数人似乎更愿意看到的空白,这也将简化代码:

lblVariable.Text = string.Format("{0}", Session["Variable"]); 

变量,很明显,需要与您的会话来改变和控制变量名。