在ASP.NET中使用urlreferrer管理查询字符串

时间:2014-05-20 15:15:51

标签: asp.net vb.net url query-string response.redirect

VB.NET

Response.Redirect(Request.UrlReferrer.AbsolutePath & "?query=1")

这是一个如何导航到urlreferrer并包含新查询字符串的工作示例。

问题

当urlreferrer包含现有的查询字符串时,呈现的标记变为:

url.aspx?existing=1?query=1

由于第二个,网址无法正确解析,而&

问题

如何确定urlreferrer是否已具有查询字符串并实现正确的代码以适应?

    If (Request.UrlReferrer.OriginalString.Contains("?")) Then
      Response.Redirect(Request.UrlReferrer.OriginalString & "&query=1")
    Else
      Response.Redirect(Request.UrlReferrer.OriginalString & "?query=1")
    End If

AbsoluteUrl不包含查询字符串使用OrigionalString作为引荐来源。

2 个答案:

答案 0 :(得分:1)

有点逻辑:

If Request.UrlReferrer.OriginalString.Contains("?") Then
   ...
Else
   ...
End If

答案 1 :(得分:1)

你可以查看是否有? in de Request.UrlReferrer.AbsolutePath:

If (Request.UrlReferrer.AbsolutePath.Contains("?")) Then
   Response.Redirect(Request.UrlReferrer.AbsolutePath & "&query=1")
Else
   Response.Redirect(Request.UrlReferrer.AbsolutePath & "?query=1")
End If