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());
            }
        }
  • 相关阅读:
    全站导航
    常用模块
    模块的引用的路径的查找
    类的魔术方法
    包装和授权
    类内置的attr属性
    反射
    三大特性之多态
    三大特性之封装
    python应用:爬虫框架Scrapy系统学习第二篇——windows下安装scrapy
  • 原文地址:https://www.cnblogs.com/litao9026/p/4831260.html
Copyright © 2011-2022 走看看