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());
        }
    }
时间: 2024-08-10 19:03:33

C# url中文参数值js传递后台接收方法的相关文章

【WebForm】Js调用后台C#方法

因业务的需要,有这么个需求,需要前台的JS传参调用C#后台的方法.现在有这么个方法可以解决,整理如下. 首先,先说一下基本实现,前台用Jquery的ajax将其中的URL后加方法,然后在Data中传递参数.在返回的Data中 获取到数据,并做相应的处理.而后端呢,则是在对应的方法加标记WebMethod. 前端JS: $.ajax({ type: "post", dataType: "json", data: "{jsTime:'" + jsTi

ajaxpro——js调用后台的方法

前提:添加并引用类库ajaxpro.dll 1.把引用的类库改为自己(如果是自己的话,就不用修改): <%@ Page Language="C#" AutoEventWireup="true" Inherits="ProductList" CodeBehind="ProductList.aspx.cs" ValidateRequest="false" %> 注意顺序 2.去掉后台代码的命名空间或

JSF页面中使用js函数回调后台bean方法并获取返回值的方法

由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的,很可能会误导使用者. 相对来说,看国内的那些仅仅是翻译过来的文章或书籍不如直接看国外的官方文档或资料来的实在,在我讲述jsf页面中如何使用js调用后台bean方法之前,先给大家说几个国外的资料.在primefaces官方网站上,你可以搜索到几乎所有你需要的东西,primefaces官网为:http:

js调用后台代码的几种方式

JS调用后台方法大全 javascript函数中执行C#代码中的函数:方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中;2.在前台写一个js函数,内容为document.getElementById("btn1").click();3.在前台或后台调用js函数,激发click事件,等于访问后台c#函数: 方法二:1.函数声明为public后台代码(把public改成protected也可以)publicstringss(){return("

前台js与后台方法互调

一:后台调用前台js的方法 ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>Arch();</script>"); 二:前台js调用后台的方法

后台接收json数据

后台接收方法 @RequestMapping(value="/cp/returnstatus") @ResponseBody public String returnstatus(@RequestBody JSONObject object){ String appid = callback(object); backString = PhoneChong.backString("1"); System.out.println("backString:&q

JS传递到后台中文 出现乱码问题

js 异步传递中文字符,后台接收出现乱码问题 function showFirSelect(a){ var b = encodeURI(a); var secUrl = "<%=basePath%>schoolController/getSecSchool.do?schoolName="+b; $.get(secUrl,function(data,status){ //alert("数据:" + data + "\n状态:" + st

url中拼接中文参数,后台接收为乱码的问题

遇到在URL中拼接中文的参数,后台拿到的数据为乱码的问题. 解决的方法是在客户端对这个中文参数进行编码,然后服务端再进行解码就行了. 客户端编码(JavaScript) var url = "contract!select.action?chineseParam=" + encodeURI(encodeURI("我是中文参数")); 注意:编码的时候需要使用两次encodeURI()方法,写一个就是????号,写两个则输出: %4d%5a这种. 服务端解码(Java

JS传递中文参数出现乱码的解决办法

一.window.open() 乱码: JS中使用window.open("url?param="+paramvalue)传递参数出现乱码,提交的时候,客户端浏览器URL中显示参数是正确的, 但是传到了服务器端是是乱码.这种情况下需要在客户端对该参数进行编码,然后在服务器端解码即可. 1.JS客户端编码: var selStr=document.getElementsByName('selStr')[0].value; selStr=encodeURI(encodeURI(selStr