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+")

你可能感兴趣的:(asp.net)