在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
任何想法?
答案 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)));