从ASP.NET页面获取请求变量

我写了以下函数,大约95%的时间都有效,但我需要它100%工作(显然):
Public Shared Function getpassedVars() As String   
    Const keyCount As Integer = 54 ' 54 seems to be the number of parameter keys passed by default (for this web_app).
    '                                there are more if there is a form involved (ie. from search page)

    Dim oParams As String = ""
    Try
        With HttpContext.Current
            If .Request.Params.AllKeys.Count > keyCount Then
                For i As Integer = 0 To (.Request.Params.AllKeys.Count - (keyCount + 1))
                    oParams &= String.Format("{0}={1}{2}",.Request.Params.Keys.Item(i),.Request.Params(i),IIf(i < .Request.Params.AllKeys.Count - (keyCount + 1),";",""))
                Next
            End If
        End With
        Return oParams
    Catch ex As Exception
        Return nothing
    End Try
End Function

它为Request.Params对象擦除传递的变量,这些变量位于数组的开头(其余的是ASP参数).我很确定我已经看到了获得这些参数的不同方法,但我无法弄明白.有什么建议?

编辑

所以看起来我可以使用Request.URL.Query来实现这一点,我将对此进行调查并发回.

这是我想出的:

Public Shared Function getpassedVars() As String
    Dim oParams As String = ""
    Dim qString As String = ""
    Dim oSplit As New List(Of String)
    Try
        With HttpContext.Current
            qString = .Request.Url.Query
            If qString.Length > 0 Then 'do we have any passed variables?
                If qString.StartsWith("?") Then qString = qString.Remove(0,1) 'remove leading ? from querystring if it is there
                oSplit.AddRange(qString.Split("&"))
                For i As Integer = 0 To oSplit.Count - 1
                    oParams &= String.Format("{0}{1}",oSplit.Item(i),IIf(i < oSplit.Count - 1,""))
                Next
                Return oParams
            Else
                 Return nothing
            End If
        End With
    Catch ex As Exception
        Return nothing
    End Try
End Function

到现在为止还挺好.

解决方法

Request.QueryString是一个NameValueCollection,因此获取“参数”的最简单方法是执行以下操作:
foreach (String s in Request.QueryString) {
        Response.Write(s + " = " + Request.QueryString[s]);
    }

你的职能在哪里?如果它在页面代码中执行,那么你肯定不需要使用HttpContext变量.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....