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进行编码。您只能对查询字符串进行编码。