C# 导出到Excel-使用“发布”&&引用;发牢骚

C# 导出到Excel-使用“发布”&&引用;发牢骚,c#,asp.net,vb.net,C#,Asp.net,Vb.net,我有三个查询字符串(querystring1=100,querystring2=A&B,querystring3=300),URL显示为http://mywebsite.com?querystring1=100&querystring2=A%26B&querystring3=300。(查询字符串2“A&B”编码为“A%26B”)。它正在正确返回数据,到目前为止没有问题。然而,我的ExportToExcel方法 Response.Write("<script>window.open('

我有三个查询字符串(querystring1=100,querystring2=A&B,querystring3=300),URL显示为
http://mywebsite.com?querystring1=100&querystring2=A%26B&querystring3=300
。(查询字符串2“A&B”编码为“A%26B”)。它正在正确返回数据,到目前为止没有问题。然而,我的ExportToExcel方法

Response.Write("<script>window.open('" & Request.Url.ToString & "&excel=true&PageSize=" & TotalRecs.ToString() & "','_new', '');
history.go(-1);
</script>")
Response.Write(“window.open(”&Request.Url.ToString&“&excel=true&PageSize=“&TotalRecs.ToString()&“,”新“,”);
历史。go(-1);
")

无法正常工作,因为在呈现页面时,URL中的querystring2被解码为“A&B”,即
http://mywebsite.com?querystring1=100&querystring2=A&B&querystring3=300&excel=true&PageSize=3
。它将查询字符串值作为“A”而不是“A&B”。有人能告诉我如何解决这个问题吗?

使用
Server.UrlEncode


使用
Server.UrlEncode

试试这个:

string querystring2="A&B";
Response.Redirect("http://mywebsite.com?querystring2"+ Server.UrlEncode(querystring2));
试试这个:

string querystring2="A&B";
Response.Redirect("http://mywebsite.com?querystring2"+ Server.UrlEncode(querystring2));

如何在此处使用Server.UlrEncode:
Response.Write(“window.open”(“&Request.Url.ToString&“&excel=true&PageSize=“&TotalRecs.ToString()&”,“\u new”(),”);history.go(-1);”
Append
Server.UrlEncode(Request.Url.ToString())
不是未编码的字符串。因此,您有未编码的Url,因此,它将&instad的百分比设置为26。另外,&是url中的一个特殊字符,因此稍后该url会被误解
Response.Write(“window.open”(“&Server.UrlEncode(Request.Url.ToString)”和“&excel=true&PageSize=“&TotalRecs.ToString()&”、“\u new”、”);history.go(-1);”
Right!我认为您只需要删除urlencode并使用Request.Url.Raw。如果它不起作用,只需检查Url对象的属性,有人为您服务如果没有,这是URI文档:我如何在这里使用Server.UlrEncode:
Response.Write(“window.open”(“&Request.Url.ToString&”&excel=true&PageSize=“&TotalRecs.ToString()&”,“\u new”,”);history.go(-1”)
Append
Server.UrlEncode(Request.Url.ToString())
不是未编码的字符串。因此,您有未编码的Url,因此它将&instad设置为%26。另外,&是Url中的一个特殊字符,因此稍后该Url会被误解。
Response.Write(“window.open('”&Server.UrlEncode(Request.Url.ToString)&&excel=true&PageSize=“&TotalRecs.ToString()”“,”新“,”;历史。开始(-1);”)
没错!我想你只需要删除urlencode并使用Request.Url.Raw。如果它不起作用,只需检查Url对象的属性,有人为你服务。如果没有,这是URI文档:我不是直接调用Url。我如何在以下代码中使用Server.UrlEnclode?
Response.Write(“window.open”(“打开”)“&Request.Url.ToString&”&excel=true&PageSize=“&TotalRecs.ToString()&“,”u new“,”;history.go(-1);”
只需使用Server.UrlEncode(TotalRecs.ToString())而不是TotalRecs.ToString()。我不是直接调用Url。我如何在以下代码中使用Server.UrlEnclode?
Response.Write(“window.open”(“&Request.Url.ToString&”“&excel=true&PageSize=“&TotalRecs.ToString()&“,”新“,”;history.go(-1);”
只需使用Server.UrlEncode(TotalRecs.ToString())而不是TotalRecs.ToString()