C# 包含&;使用查询字符串转到下一页
这是我在第一页传递的代码C# 包含&;使用查询字符串转到下一页,c#,asp.net,query-string,C#,Asp.net,Query String,这是我在第一页传递的代码 protected void btnsbt_Click(object sender, EventArgs e) { DateTime a = DateTime.ParseExact(txtfrmdate.Text, "dd-MM-yyyy", null); DateTime b = DateTime.ParseExact(txttodate.Text, "dd-MM-yyyy", null); string c = txtCustomerName
protected void btnsbt_Click(object sender, EventArgs e)
{
DateTime a = DateTime.ParseExact(txtfrmdate.Text, "dd-MM-yyyy", null);
DateTime b = DateTime.ParseExact(txttodate.Text, "dd-MM-yyyy", null);
string c = txtCustomerName.Text.ToString();
Response.Redirect("frmRptSalesBillWiseView.aspx?drop=" + a + "&radio=" + b + "&CustName=" + c + "");
}
当我将名称“A&A CONTAINER CONVERSIONS
”传递到下一页时,我只得到“A
”
第二页的代码:
custname1 = Request.QueryString["CustName"];
你应该
Encode
url。尝试使用HttpUtility.UrlEncode
。比如:
System.Web.HttpUtility.UrlEncode("A & A CONTAINER CONVERSIONS")
由于名称“A&A CONTAINER CONVERSIONS”包含特殊字符“&”(与号),因此在查询字符串中具有特殊含义
&用于分隔查询字符串中的多个值。
例如:?a=123&b=hi&c=bye
在上面的示例中,查询字符串有3个值,仅以“&”分隔
因此,您必须使用对名称进行编码。我使用Server.UrlEncode()解决了这个问题 Response.Redirect(“frmRptSalesBillWiseView.aspx?drop=“+a+”&radio=“+b+”&CustName=“+Server.UrlEncode(c)+”);
}您可以在发送之前尝试对URL进行HTML编码,以保留值中的字符(&c)。如果我喜欢此响应,请重定向(HttpUtility.UrlEncode(“frmRptSalesBillWiseView.aspx?drop=“+a+”&radio=“+b+”&CustName=“+c+”);我得到的错误是HTTP错误404.11-不是Found@ASP.NET不要对整个url进行编码。您只能对查询字符串进行编码。