2013-04-10 100 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"]); 

變量,很明顯,需要與您的會話來改變和控制變量名。