从任何URL获取值

3

1
你是将URL解析为字符串,还是正在运行从该URL发出请求的代码? - womp
我有另一个页面,重定向到这个页面。 - Wassim AZIRAR
这个问题已经在https://dev59.com/v3E85IYBdhLWcg3wNwx3得到了回答。 - Peter
这并没有真正回答问题,不过我会假设你是指后者。在这种情况下,Patricker的回答是正确的。 - womp
这个问题可能应该用不同的措辞来表达,我认为它有点令人困惑。你试图获取传递给当前页面的查询字符串值,而不是只是拥有一个URL作为字符串。我建议回去编辑一下这个问题,这样其他人就可以更容易地从中受益了。 - Peter
4个回答

5
您可以通过 Request.QueryString() 数组访问所有查询字符串: Request.QueryString("id") 将给您返回 2

尝试使用 Request.QueryString["id"],注意方括号。 - WTFZane

2

尽管我自己的评论说已经回答了,这里是代码。

Dim idval As String = System.Web.HttpUtility.ParseQueryString("http://localhost:49500/Learning/Chapitre.aspx?id=2")("id")

0

0

使用URL创建System.Uri类的新实例,然后使用Query属性获取查询字符串部分。

一旦获得该字符串,对'&'字符进行String.Split。对于结果数组中的每个字符串,在'='字符上进行String.Split。在结果数组中,第一个字符串是查询参数名称,第二个是值(如果存在)。检查名称是否是您感兴趣的名称,如果是,则获取该值。

更新:天哪,我自1999年以来就没有碰过VB了... :-)

这是我的答案代码。我没有意识到要解析的URL是页面URL。对于这种特定情况,Request.QueryString("id")确实是更好的解决方案。

    Dim url As Uri = New Uri("http://localhost:49500/Learning/Chapitre.aspx?id=2")
    Dim query As String = url.Query.Trim("?")
    Dim parameters() As String = query.Split("&")
    Dim tokens() As String
    Dim value As String = ""
    For index As Integer = 0 To parameters.Length - 1
        tokens = parameters(index).Split("=")
        If tokens(0).ToLower = "id" Then
            If tokens.Length = 2 Then
                value = tokens(1)
            End If
            Exit For
        End If
    Next
    ' At this point value contains the parameter value or
    ' is empty if the parameter has no value or if the parameter is not present

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接