zoukankan      html  css  js  c++  java
  • C# url中文参数值js传递后台接收方法

    今天项目中碰到一个问题,需要将用户在查询页面选择的查询条件传入到导出页面进行数据导出,传入给导出页面的参数内容如下:

    <script language="javascript" type="text/javascript">
    
    var export_str=" AND IsRecover='已回收' AND AtFactory='A工厂'";
    'ComputerScrapExport.aspx?exportStr='+export_str+''
    
    </script>


    对于这种包含中文的问题解决,主要有如下几种解决方式:

    1、将web.config配置文件globalization节点的编码方式改成gb2312,如下:

    <system.web> 
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /> 
    </system.web> 

    以上这种方式因为是全局的,如果项目中有其它需求,可能无法达到预期效果,如javascript 调用webservices 。

    2、单独修改aspx页面参数(这种方式没有试过,不知是否有效),如下:

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

    3、传递和接收URL在后台.aspx代码中处理

    //请求URL中对中文编码
    string Name = "中文参数"; 
    Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name)) ;
    
    //接收端进行解码
    string Name = Request.QueryString["Name"]; 
    Response.Write(Server.UrlDecode(Name)) ;

    4、在页面中用js进行url请求,后台进行处理,这个就是我项目中需求的方式了,如下:

    //先使用js中的escape()
    var export_str=escape(export_str);
    'ComputerScrapExport.aspx?exportStr='+export_str+''
    
    //接收页面后台接收方式,使用Server.UrlDecode()
    public string exportStr
        {
            get
            {
                return string.IsNullOrEmpty(Server.UrlDecode(Request.QueryString["exportStr"])) ? "" : Server.UrlDecode(Request.QueryString["exportStr"].ToString());
            }
        }
  • 相关阅读:
    追踪CPU跑满
    巧用Systemtap注入延迟模拟IO设备抖动
    用户态函数跟踪 (无调试符号)
    C#(同步调用、异步调用、异步回调)
    如何安装Python环境以及为Visual Studio 2012安装Python插件
    [转] FTP主动模式和被动模式的区别
    ORA-12154: TNS: 无法解析指定的连接标识符
    C# Enum,Int,String的互相转换 枚举转换
    2.Maven之(二)Maven生命周期
    1.Maven之(一)Maven是什么
  • 原文地址:https://www.cnblogs.com/litao9026/p/4831260.html
Copyright © 2011-2022 走看看