如何在C#控制器中处理前端JSON.stringify序列化的数组
如何将JavaScript数组直接传递给C# MVC控制器并获取数组类型数据
要实现直接在C#控制器中获取数组类型数据,需要调整JavaScript的AJAX请求格式,并利用ASP.NET MVC的模型绑定功能,具体修改如下:
修改JavaScript AJAX请求
调整data的序列化方式,并指定请求方法为POST(GET请求不适合传递复杂数组,且可能存在URL长度限制):
function Check(obj) { var eArray = $('..').map(function () { return this.getAttribute("value"); }).get(); $.ajax({ url: "/Order/Check", data: JSON.stringify({ GUID: eArray }), // 直接序列化包含数组的对象 contentType: "application/json; charset=utf-8", dataType: "json", cache: false, type: "POST", // 指定POST方法 success: function(result) { // 这里可以添加返回结果的处理逻辑 } }); }
修改C#控制器代码
添加[HttpPost]特性,并直接声明数组类型的参数,ASP.NET MVC会自动完成JSON到数组的绑定:
[HttpPost] public ActionResult Check(string[] GUID) { // GUID就是直接获取到的字符串数组,可直接进行业务处理 var result = // 编写你的业务处理逻辑,生成返回结果 return Json(result, JsonRequestBehavior.AllowGet); }
关键说明
- 请求格式匹配:
contentType: "application/json; charset=utf-8"告诉服务器请求体是JSON格式,框架会自动使用JSON解析器处理请求内容,完成参数绑定。 - 请求方法选择:使用
POST而非默认的GET,避免URL长度限制,同时更符合复杂数据传递的场景。 - 参数类型灵活:控制器参数可以是
string[],也可以根据需求换成List<string>,框架都能正确完成绑定。
内容的提问来源于stack exchange,提问作者user21076978
相关产品推荐
相关产品推荐

