.NET 获取Get方式URL中的参数键值

在Web开发中,我们常常会涉及到需要获取Get方式URL中的参数键值的情况,这里简单介绍三种方法:

第一种:常用的做法有使用JavaScript获取location.href后用正则表达式匹配获取此URL的所有键值对;也可以通过以“&”为分隔符进行分隔后存储在对象中,然后获取对象中的键值对,如下例子:

queryString.js

 1 var queryString= {
 2         data:{},
 3         initial:function(){
 4             var paramGroup;
 5             var tempGroup;
 6             var queryStr = new String(window.location.search);
 7             queryStr = queryStr.substr(1,queryStr.length);//remove "?"
 8             paramGroup = queryStr.split("&");
 9             for(var i=0; i<paramGroup.length; i++){
10                 tempGroup = paramGroup[i].split("=");
11                 this.data[tempGroup[0]] = tempGroup[1];
12             }
13         },
14         getValue:function(key){
15             return this.data[key];
16         }
17 }

queryString.html

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 2 <html>
 3     <head>
 4         <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 5         <title>获取Get方式URL中的参数键值</title>
 6         <script type="text/javascript" src="queryString.js">
 7         </script>
 8     </head>
 9     <body>
10         <div id="divParameter">
11         </div>
12         <input type="button" id="btnNew" value="打开新窗口" onclick="window.open('queryString.html?id=1001&name='+encodeURI('博客园KenmuHuang'));" />
13     </body>
14     <script type="text/javascript">
15         window.onload=function(){
16             queryString.initial();
17             document.getElementById("divParameter").innerHTML = "id:" + queryString.getValue("id") + 
18                 "
name:" + decodeURI(queryString.getValue("name"));
19         };
20     </script>
21 </html>

第二种:这里比如有个Key参数键,需要获取它对应的值;这时可以使用.NET里的Request.Form["Key"](针对Post)或Request.QueryString["Key"](针对Get),也可以用Request["Key"](Post和Get都可以)

其实.NET还有一种做法,就是获取到URL地址后转化为NameValueCollection对象示例,如下例子:

1 using System.Web;
2 using System.Collections.Specialized;
3 
4 NameValueCollection collection = HttpUtility.ParseQueryString("?ProjectID=-1&ProID=-1&CurId=503&IsTender=Y&PlanID=-1&hasAccess=True&mode=v");
5 string hasAccess = collection.Get("hasAccess"); //“True”
原文地址:https://www.cnblogs.com/huangjianwu/p/4539603.html