2011-06-26 22 views
0

クエリ文字列にパラメータを渡すときに問題があります。その値がnullであることがわかりました。ASP.NET:クエリ文字列にはパラメータの長さに制限がありますか?

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)); 

PAGE2 - ここで私は、その値を要求しています: - ここで私はいくつかのパラメータを渡しています

のPage1: 私のコードスニペットの下

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

2つの問題:のタイプミスをfrom - リダイレクトコードではformとなっています。また は、あなたがより良い.. URLに収まるように、すべての値を符号化するので、コードは次のようになります?私はver8 IEを使用しています

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

あなたは 上のQueryStringを転送することができ、データの量は多くの要因 によって限定されるものではなく、最も限定的 に思える1は、ブラウザの中にスペース ですthis

を見ますアドレスバー。私が唯一のNetscape Navigator バージョン4ながら2047 文字まで許されて試験 Internet Explorerバージョン5および6 は 30,000までを扱うことができるように思えたし、私はずっと9,000過ぎ バージョン6を得ることができませんでした。

代わりに、クエリ文字列に

EDIT使用して変数を渡すの他のオプションについては、このMSDNの記事を参照してください:あなたが大規模な文字列が必要な場合は、POSTパラメータに値を格納しようと

+0

...ので、どのように私はこれをオフに取り除くことができ任意のアイデアが理解されるであろう –

+0

編集して提案を追加しました –

関連する問題