json数组传递到后台controller
现前台有如下格式的数据需要传递到后台的controller,
1 public class UpdatePara 2 { 3 public int RoleID { get; set; } 4 public List<int> FunctionIDs { get; set; } 5 }
如果按照常规方式传递,后台的controller代码应该是下面这样的
1 public JsonResult Update(UpdatePara para) 2 { 3 var flag = BLLRolePermission.Update(para.RoleID, para.FunctionIDs); 4 return Json(new { success = flag }); 5 }
但是由于这里的FunctionIDs是个数组,如果按照上面这种方式接收参数,我们会发现para.FunctionIDs是null
为了正确获取参数值,我们需要自定义个过滤器,代码如下:
1 public class JsonFilter : ActionFilterAttribute 2 { 3 public string ParamName { get; set; } 4 public Type JsonDataType { get; set; } 5 6 public override void OnActionExecuting(ActionExecutingContext filterContext) 7 { 8 string inputContent; 9 var jss = new JavaScriptSerializer(); 10 11 using (var sr = new StreamReader(filterContext.HttpContext.Request.InputStream)) 12 { 13 inputContent = sr.ReadToEnd(); 14 } 15 16 var result = jss.Deserialize(inputContent, JsonDataType); 17 18 filterContext.ActionParameters[ParamName] = result; 19 } 20 }
然后,对应的Action方法应该加上过滤器标记
1 [JsonFilter(ParamName = "para", JsonDataType = typeof(UpdatePara))] 2 public JsonResult Update(UpdatePara para) 3 { 4 var flag = BLLRolePermission.Update(para.RoleID, para.FunctionIDs); 5 6 return Json(new { success = flag }); 7 }
同时要注意下前台ajax传参的时候,json对象要序列化下
1 JSON.stringify({ 2 roleID: $('#roleID').val(), 3 functionIDs: functionIDs 4 });
That's all.
转载于:https://www.cnblogs.com/huanghaihua/p/5028677.html
json数组传递到后台controller相关推荐
- Js传递数组参数到后台controller的方式
分享一篇js传递数组参数到后台controller的方法,具有很好的参考价值,希望对大家有所帮助. 传递参数传递字符串,所以要把数组转换为字符串, var arr=[1,23,34,5]; var s ...
- 前台传json ajax,ajax使用json数组------前端往后台发送json数组及后台往前端发送json数组...
1.引子 2.前端往后台传输json数据 JSON.stringify()方法将json对象转为字符串形式.如果不使用**JSON.stringify()**方法,后台的java代码将不能获得json ...
- ajax 入参为list_ajax传递给后台数组参数方式
出自:http://blog.csdn.net/lingxyd_0/article/details/10428785 在项目上用到了批量删除与批量更改状态,前台使用了EasyUI的DataGrid,用 ...
- java ajax json 解析json数组对象数组对象数组对象数组_ajax传递包含对象数组的json数据...
一个简单的demo.用户在前台页面表单输入数据表的信息,数据传递到后台,系统自动在后台创建数据库表(table)的功能. 作为简单demo,这里的表只有"表名","列名& ...
- springMVC通过ajax传递参数list对象或传递数组对象到后台
springMVC通过ajax传递参数list对象或传递数组对象到后台 环境: 前台传递参数到后台 前台使用ajax 后台使用springMVC 传递的参数是N多个对象 JSON对象和JSON字符串 ...
- 今晚被两个bug 困扰---第一个,小程序数组传递到PHP后台变成了字符串,导致解析失败
1.今晚被两个bug 困扰-第一个,小程序数组传递到PHP后台变成了字符串,导致解析失败 2.解决方法 小程序部分: var that = this; console.log(this.data.co ...
- ajax 入参为list_ajax传递参数list对象或传递数组对象到后台
springMVC通过ajax传递参数list对象或传递数组对象到后台 环境: 前台传递参数到后台 前台使用ajax 后台使用springMVC 传递的参数是N多个对象 JSON对象和JSON字符串 ...
- SpringMVC中,前台jsp封装参数,绑定参数,传递参数到后台controller的过程详解
前台到后台的流程:前台jsp->后台:controller控制器层->service业务层->DAO数据访问层->数据库model模型层. 从上面流程可知,前台jsp的数据,想 ...
- Jquery中使用ajax传json参数并从SpringBoot后台Controller返回消息
场景 前端通过ajax提交json格式的数据,后台接受到实现具体的业务后 返回给前端消息提示. 实现 html页面代码 <button id="printBtn" class ...
最新文章
- c语言第1章以下说法错误的是,计算机等级考试c语言程序设计习题
- 你不知道的JavaScript之词法作用域
- 菜鸟级三层框架(EF+MVC)项目实战之 系列一 EF零基础创建领域模型
- Oracle 备份与恢复学习笔记(6_1)
- 20190101.DDD笔记
- 2019_7_30python
- C# 对程序窗口进程和进程ID
- 编译原理—词法分析器(Java)
- BASH中字符串的处理
- 抽象类与抽象方法 c# 1613720553
- 07-OSPF区域类型--NSSA区域/完全NSSA区域
- 监控Nginx负载均衡器脚本
- Xshell官网免费版
- C语言科学计数法中的一个小问题
- 数据挖掘技术的来源 历史 研究内容及常用技术
- 麻省理工遍地走,6年经验安卓程序员面试微软,靠这份思维脑图拿下Offer!
- 用c语言编译频率求波长,频率与波长的换算公式(c=λv)
- Excel画横坐标不均分的图表
- 第十三届蓝桥杯大赛软件组省赛 Python大学A组 个人题解
- 今日全国油价查询2022-03-08
热门文章
- python实训报告50000_Python程序设计 实验报告五
- git 获取最新代码_程序员必知:这是一份全面 amp; 详细的 Git与Github 介绍指南
- Spring Boot文档阅读笔记-构建SOAP的web Service服务
- 前端笔记-echarts加载bmap地图
- Java工作笔记-Spring Boot + Jdbc + dm7Driver访问数据库(Spring Boot连接达梦数据库)
- 使用CMake与VS2012编译OpenCV3.3.0版本
- Java高级语法笔记-内部类
- html延迟首页,jquery怎么实现延迟执行?
- cron 每月最后一个自然日_日乙前瞻:鹿岛樱花谁能冲击亚冠,浦和红钻能否守住最后一个主场...
- 宁夏小学三年级计算机下册教案,宁夏信息技术教案