ASP.NET:查询字符串中的参数长度是否有限制?

时间:2011-06-26 12:14:29

标签: asp.net

在querystring中传递参数时遇到问题。我发现它的值为空 在我的代码段下面:

第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"];

但我发现Request.QueryString [“from”]和Request.QueryString [“to”]都返回null

任何想法?

2 个答案:

答案 0 :(得分:3)

请参阅this

  

您可以传输的数据量   QueryString受数字限制   因素,但似乎是一个   最具限制性的是空间   在浏览器的地址栏中。该   Internet Explorer版本5和6   我测试的只允许最多2,047   Netscape Navigator中的字符   版本4似乎能够处理   高达30,000,我无法得到   版本6超过9,000。

有关其他选项,请参阅此MSDN文章,而不是使用查询字符串

传递变量

编辑:如果您需要大字符串,请尝试将值存储在POST参数中

答案 1 :(得分:1)

两个问题:from中的拼写错误 - 在重定向代码中,您将其设为form。 此外,您最好将所有值编码为适合URL ..所以代码将是:

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)));
相关问题