• asp.net URL多参数傳值以及特殊符号传值问题


    传送
    <asp:HyperLink id=lkEdit NavigateUrl=' <%# string.Format("edit.aspx?WRFAC={0}&WRLOC={1}&WRPROD={2}&WRTOOL={3}&WRRDTE={4}",Server.UrlEncode(DataBinder.Eval(Container.DataItem,"WRFAC").ToString()),Server.UrlEncode(DataBinder.Eval(Container.DataItem,"WRLOC").ToString()), Server.UrlEncode(DataBinder.Eval(Container.DataItem,"WRPROD").ToString()), Server.UrlEncode(DataBinder.Eval(Container.DataItem,"WRTOOL").ToString()),  
    Server.UrlEncode(DataBinder.Eval(Container.DataItem,"WRRDTE").ToString()))%>' text='修改' Runat="server">
                                         
     
     
    接收
      string  a = Server.UrlDecode(Request.QueryString["WRLOC"]);
                 string  b = Server.UrlDecode(Request.QueryString["WRFAC"]);  
                string  c = Server.UrlDecode(Request.QueryString["WRPROD"]);  
                string  d = Server.UrlDecode(Request.QueryString["WRTOOL"]);  
                string  e = Server.UrlDecode(Request.QueryString["WRRDTE"]);  
     
     
    如果传送一个参数2423+35345+456接收后还是2423 35345 456加号丢失了。
    </asp:HyperLink>
     
    今天我在调程序时,遇到了见郁闷的事,我用ajax从前台显示页面传字符串变量给处理页面,出现了件怪事,我想传的内容是abc+,但接收以后用System.out.println()输出是abc空格。反复测试好几遍,都是这个结果,真是令人郁闷。在网上搜了搜,找到了原因。
    原因:   url中有些字符被转义,比如空格被编码成加号,于是传的参数明明是加号,获取的值却成了空格。如何解决呢?如果是通过url传递参数,应该对其进行必要的编码。
    解决办法:
            
    javascript中加入   function URLencode(sStr)
    {
        return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
    }
    对字符串进行处理.如:var str=URLencode("abc+")
  • 相关阅读:
    Delphi实现文件关联
    用Delphi实现文件关联
    Delphi 7使用自定义图标关联文件类型
    redux-form的学习笔记
    妙用 `package.json` 快速 `import` 文件(夹)
    【webpack2】-- 入门与解析
    黑科技:CSS定制多行省略
    DOM操作和样式操作库的封装
    webstorm 2016 激活破解
    js/jq仿window文件夹框选操作插件
  • 原文地址:https://www.cnblogs.com/zzxap/p/2175999.html
Copyright © 2020-2023  润新知