之前没有遇见过,这样的问题,所以都没有考虑过。有一个参数里面有一个“+”号,接收的时候+不见了,如address="上海黄埔+上海浦东",接收的时候变成“上海黄埔上海浦东”了。
string url = "/xxx/xxx.aspx?xx=" + xx+ "&name=" + contextWai.Server.UrlEncode(name) + "&haha=" + contextWai.Server.UrlEncode(haha) + "&bedName=" + contextWai.Server.UrlEncode(bedName) + "&star=" + star + "&address=" + contextWai.Server.UrlEncode(address) + "&pic=" + contextWai.Server.UrlEncode(pic) + "&zaocan=" + contextWai.Server.UrlEncode(zaocan) + "&kuandai=" + contextWai.Server.UrlEncode(kuandai) + "&mianji=" + contextWai.Server.UrlEncode(mianji) + "&price=" + price + "&priceId=" + priceId + "&rid=" + rid + "&sign=";
这个是我用ajax在一般处理程序里加上对称加密签名的。编码一下即可,Server.UrlEncode(),接收的时候不用解码Server.UrlDecode().
function login(url){ location.href=url; }
之前我把上面的URL直接拼接login方法的,结果不行。跳转过去的时候,参数变成了跟没有编码时候的一样了。
所以,得把他赋值给控件的属性,调用方法的时候再获取。
如果是用表单提交,应该要加上
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
如果在在js里面拼接
JS:var url = "/xxx/xxx.aspx?xx=" + escape(xx);
C#:string xx=Server.UrlDecode(Request.QueryString["Name"]);