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

本文介绍了解决URL中中文参数传递问题的多种方法,包括修改web.config配置、页面元信息设置、后台处理及JavaScript编码等技术手段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

<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());
        }
    }

 

转载于:https://www.cnblogs.com/litao9026/p/4831260.html

C#后台接收List的值可以通过多种方式实现,具体取决于你使用的技术栈和前端传递数据的方式。以下是几种常见的方法: ### 方法一:使用ASP.NET MVC接收JSON数据 假设前端发送的是一个JSON格式的List数据,可以通过模型绑定的方式接收。 **前端代码(使用JavaScript发送JSON数据):** ```javascript var data = [1, 2, 3, 4, 5]; $.ajax({ url: '/Home/ReceiveList', type: 'POST', data: JSON.stringify(data), contentType: 'application/json', success: function(response) { console.log('Success:', response); } }); ``` **后端代码(C#):** ```csharp public class HomeController : Controller { [HttpPost] public JsonResult ReceiveList(List<int> list) { // 处理接收到的List数据 foreach (var item in list) { Console.WriteLine(item); } return Json(new { success = true }); } } ``` ### 方法二:使用ASP.NET Web API接收JSON数据 如果使用Web API,可以在控制器中定义一个接收List的接口。 **前端代码(使用JavaScript发送JSON数据):** ```javascript var data = [1, 2, 3, 4, 5]; fetch('/api/values', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }) .then(response => response.json()) .then(data => { console.log('Success:', data); }); ``` **后端代码(C#):** ```csharp public class ValuesController : ApiController { [HttpPost] public IHttpActionResult ReceiveList(List<int> list) { // 处理接收到的List数据 foreach (var item in list) { Console.WriteLine(item); } return Ok(new { success = true }); } } ``` ### 方法三:使用ASP.NET Core MVC接收表单数据 如果前端发送的是表单数据,可以通过模型绑定的方式接收。 **前端代码(使用HTML表单提交数据):** ```html <form action="/Home/ReceiveList" method="post"> <input type="text" name="list" value="1,2,3,4,5" /> <input type="submit" value="Submit" /> </form> ``` **后端代码(C#):** ```csharp public class HomeController : Controller { [HttpPost] public IActionResult ReceiveList(string list) { // 将字符串分割成List var listValues = list.Split(',').Select(int.Parse).ToList(); // 处理接收到的List数据 foreach (var item in listValues) { Console.WriteLine(item); } return Ok(new { success = true }); } } ``` 通过以上几种方法,你可以在C#后台接收前端传递的List数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值