我写了以下函数,大约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
到现在为止还挺好.
解决方法
原文地址:https://www.jb51.cc/aspnet/247713.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。