asp.net中页面间url参数传递的三种实现方法

来源:互联网 发布:安卓出题软件 编辑:程序博客网 时间:2024/05/22 02:07

要进行参数传递的URL为 demo.aspx?name=feiyue&city=beijing

方法一:javascript方法,将url解析放到单独的函数中

 function GetRequest() {            var url = decodeURI(location.search); //获取url中"?"符后的字串              var theRequest = new Object();           // if (url.indexOf("?") != -1) {               var str = url.substr(url.indexOf("?") + 1);             //   var str = url.substr(1);                strs = str.split("&");                for (var i = 0; i < strs.length; i++) {                    theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);                }           // }            return theRequest;        }        var objRequest = new Object();        objRequest = GetRequest();        var name = objRequest['name'];        var city = objRequest['city'];               alert("name: " + name + "city: " + city);

方法二:使用JS+正则表达式的方法

function getUrlParam(name) {            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象            var r = window.location.search.substr(1).match(reg);  //匹配目标参数            if (r != null) return unescape(r[2]); return null; //返回参数值        }             var name = objRequest['name'];        var city = objRequest['city'];       alert("name: " + name + "city: " + city);


方法三: 比较完整的参数获取方式js

// 获取地址栏的参数数组        function getUrlParams() {            var searchurl = window.location.search;            // 写入数据字典            var tmparray = searchurl.substr(1, searchurl.length).split("&");            var paramsArray = new Array;            if (temparray != null) {                for (var i = 0; i < temparray.length; i++) {                    var reg = /[=|^==]/;    // 用=进行拆分,但不包括==                    var set1 = temparray[i].replace(reg, '&');                    var tempStr2 = set1.split('&');                    var array = new Array;                    array[tempStr2[0]] = tempStr2[1];                    paramsArray.push(array);                }            }            // 将参数数组进行返回            return paramsArray;        }        // 根据参数名称获取参数值        function getParamValue(name) {            var paramsArray = getUrlParams();            if (paramsArray != null) {                for (var i = 0 ; i < paramsArray.length ; i++) {                    for (var j in paramsArray[i]) {                        if (j == name) {                            return paramsArray[i][j];                        }                    }                }            }            return null;        }             var name = getParamValue['name'];        var city = getParamValue['city'];               alert("name: " + name + "city: " + city);

方法四:扩展使用Jquery方式实现

    (function($){      $.getUrlParam= function(name)         {              var reg= new RegExp("(^|&)"+name +"=([^&]*)(&|$)");              var r= window.location.search.substr(1).match(reg);              if (r!=null) return unescape(r[2]); return null;          }      })(jQuery);       var name = $.getUrlParam('name');        var city = $.getUrlParam('city');              alert("name: " + name + "city: " + city);



以上四种方式都可以实现在页面之前进行参数的传递,获取URL地址,并解析参数



0 0