如何将带有查询字符串的URL作为查询字符串发送

Dov*_*ler 15 c# url query-string

我正在从一个页面重定向到另一个页面,另一个重定向从第二页到第三页.我从第一页获得的信息在第二页上没有使用但必须转移到第三页.是否可以将第三页的URL及其查询字符串作为查询字符串发送到第二页.这是一个例子:

Response.Redirect("MyURL1?redi=MyURL2?name=me&ID=123");
Run Code Online (Sandbox Code Playgroud)

我的问题是,作为查询字符串发送的URL有两个查询字符串变量,那么系统如何知道&之后的内容是第二个URL的第二个变量而不是第一个URL的第二个变量?谢谢.

Rem*_*sen 15

您必须将传递的URL编码为重定向URL中的参数.像这样:

MyURL = "MyURL1?redi=" + Server.UrlEncode("MyURL2?name=me&ID=123");
Run Code Online (Sandbox Code Playgroud)

这将创建一个没有双''的正确网址.和'&'字符:

MyURL1?redi=MyURL2%3fname%3dme%26ID%3d123
Run Code Online (Sandbox Code Playgroud)

请参阅MSDN:HttpServerUtility.UrlEncode方法

要从此编码的网址中提取重定向网址,您必须使用HttpServerUtility.UrlDecode它再次将其转换为正确的网址.