2011-06-26 106 views
0

我在查詢字符串中傳遞參數時遇到問題。我發現它的值爲空。
下面我的代碼片段:ASP.NET:查詢字符串中的參數長度是否有限制?

1頁 - 在這裏我傳遞一些參數:

Response.Redirect(string.Format("RequestReservationPage.aspx?plcName={0}&PLCIndex={1}&Email={2}&form={3}&to={4}&SR={5}&Comment={6}", lblPLCNameVal.Text, index, lblEmailVal.Text, DateTime.Parse(lblReqFromVal.Text).ToShortDateString(),DateTime.Parse(lblReqToVal.Text).ToShortDateString(), lblServReqNum.Text, lblYourCommentVal.Text)); 

第2頁 - 在這裏,我請求自己的價值觀:

cmbPLCRequest.SelectedIndex = Convert.ToInt32(Request.QueryString["PLCIndex"]); 

txtEmail.Text = Convert.ToString(Request.QueryString["Email"]); 
txtSR.Text = Convert.ToString(Request.QueryString["SR"]);   
txtComment.Text = Convert.ToString(Request.QueryString["Comment"]); 
txtReqFromDate.Text =Request.QueryString["from"]; 
txtReqToDate.Text = Request.QueryString["to"]; 

,但我發現,這兩個請求.QueryString [「from」]和Request.QueryString [「to」]返回null

任何想法?

回答

1

兩個問題:錯字在from - 在重定向代碼中,您將其作爲form。 此外,你最好編碼所有值是適合網址..所以代碼將是:

Response.Redirect(string.Format("RequestReservationPage.aspx?plcName={0}&PLCIndex={1}&Email={2}&from={3}&to={4}&SR={5}&Comment={6}", 
    Server.UrlEncode(lblPLCNameVal.Text), 
    index, 
    Server.UrlEncode(lblEmailVal.Text), 
    Server.UrlEncode(DateTime.Parse(lblReqFromVal.Text).ToShortDateString()), 
    Server.UrlEncode(DateTime.Parse(lblReqToVal.Text).ToShortDateString()), 
    Server.UrlEncode(lblServReqNum.Text), Server.UrlEncode(lblYourCommentVal.Text))); 
3

看到this

數據,你可以 傳遞查詢字符串是由許多因素 ,但似乎 的一個有限的數量是最嚴格的是在瀏覽器的空間 地址欄。我測試只允許最多2,047 字符,而Netscape Navigator中 4版似乎是 版本的Internet Explorer 5和6 到能夠處理 高達30,000我不能讓 版本6多過去9000元。

通過查詢字符串

編輯請參閱本MSDN文章其它選項,而不是傳遞變量:儘量存儲在POST參數的值,如果你需要較大的字符串

+0

我使用IE ver8 ...所以我怎麼能擺脫掉這個任何想法可以理解的 –

+0

編輯並添加了建議 –