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());
            }
        }
  • 相关阅读:
    ASP.NET Core Docker部署
    Asp.Net Core 发布和部署(Linux + Jexus )
    Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
    作为一个测试leader平时应该注意哪些方面
    【转】性能测试工具 性能测试如何做?
    【转】Grafana系列教程–Grafana基本概念
    jar包和war包的介绍和区别
    MySQL常用存储引擎
    【参】编程习惯
    【转】性能测试中如何定位性能瓶颈
  • 原文地址:https://www.cnblogs.com/litao9026/p/4831260.html
Copyright © 2011-2022 走看看