G'所有。
遇到一些问题,我似乎无法找到任何解决方案。我已经搜索过,甚至重新阅读维基百科上的查询字符串文章,并重新查询查询字符串的结构无济于事。
这是问题所在。
我有一个网站(www.example.com
),我的计算机上有一个应用程序,它运行在带有Outlook邮件服务器的网络上。该应用程序在单击按钮时会向所有选定的各方发送电子邮件,其中包含指向该网站的链接以获取是/否选项。所以有两个超链接按钮:
<a href="www.example.com/Login.aspx?r=www.example.com/test?user=ID&selection=yes">YES</a>
和
<a href="www.example.com/Login.aspx?r=www.example.com/test?user=ID&selection=no">NO</a>
现在当他们被发送到他们各自的浏览器时,查询字符串完全出现了。但是,在他们登录的那一刻,它会删除尾随的查询字符串,只留下&#34; www.example.com/test?user = ID&#34;在地址栏中。
关于如何保留尾随查询字符串的任何想法?或者可能是什么导致了这个?网站代码明确指出要重定向到指定的网址 - 它有哪些&#39;确实
VB代码背后:
If Not (Request.QueryString("r") Is Nothing) Then
Response.Redirect(Request.QueryString("r"))
End If
看,够简单......但是我遇到了这个问题而且让我感到烦恼的是它可能是如此简单。
欢呼任何帮助。
编辑:
对于可能遇到此问题且发现网址编码无效的任何人 - 在使用与@Frank_Vr发布的 here类似的小功能拉完整个字符串后尝试进行网址解码。对我来说就像是一种魅力。欢呼穆斯先生和Frank_Vr!
答案 0 :(得分:3)
对该查询字符串进行编码是明智的。
请参阅HttpServerUtility.UrlEncode
的示例以下代码段供快速参考;
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
string destinationURL = "http://www.contoso.com/default.aspx?user=test";
NextPage.NavigateUrl = "~/Finish?url=" + Server.UrlEncode(destinationURL);
}
}
答案 1 :(得分:1)
因为您有两个问号,Request.querystring会将其拆分,请尝试使用以下内容:
Dim url As String = Request.Url.AbsoluteUri
Dim i As Integer = 0
Do Until i = url.length
i = i + 1
If mid(ucase(url), i, 2) = "R=" Then
Response.Redirect(mid(URL,i+2)
End If
Loop
答案 2 :(得分:1)
问号表示查询字符串的开头,初始查询后的所有参数都由&#39;&#39;分隔。您有两个问号,这会导致查询字符串解析器为您提供不正确的数组。