json数组传递到后台controller
现前台有如下格式的数据需要传递到后台的controller,
public class UpdatePara
{
public int RoleID { get; set; }
public List<int> FunctionIDs { get; set; }
}
如果按照常规方式传递,后台的controller代码应该是下面这样的
public JsonResult Update(UpdatePara para)
{
var flag = BLLRolePermission.Update(para.RoleID, para.FunctionIDs);
return Json(new { success = flag });
}
但是由于这里的FunctionIDs是个数组,如果按照上面这种方式接收参数,我们会发现para.FunctionIDs是null
为了正确获取参数值,我们需要自定义个过滤器,代码如下:
public class JsonFilter : ActionFilterAttribute
{
public string ParamName { get; set; }
public Type JsonDataType { get; set; } public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string inputContent;
var jss = new JavaScriptSerializer(); using (var sr = new StreamReader(filterContext.HttpContext.Request.InputStream))
{
inputContent = sr.ReadToEnd();
} var result = jss.Deserialize(inputContent, JsonDataType); filterContext.ActionParameters[ParamName] = result;
}
}
然后,对应的Action方法应该加上过滤器标记
[JsonFilter(ParamName = "para", JsonDataType = typeof(UpdatePara))]
public JsonResult Update(UpdatePara para)
{
var flag = BLLRolePermission.Update(para.RoleID, para.FunctionIDs); return Json(new { success = flag });
}
同时要注意下前台ajax传参的时候,json对象要序列化下
JSON.stringify({
roleID: $('#roleID').val(),
functionIDs: functionIDs
});
That's all.
json数组传递到后台controller的更多相关文章
- js 中数组传递到后台controller 批量删除
/*批量删除*/function datadel(url) { var ids=[]; $("input[type='checkbox']:checked").each(funct ...
- python -- ajax数组传递和后台接收
phper转pythoner 在当初使用php做网站开发的时候,前端ajax传递数据的时候,就是直接将一个数组传递过去,后台用$_POST['key']接收即可,没有考虑那么细,想来这不都是理所当然的 ...
- 使用JQuery将前端form表单数据转换为JSON字符串传递到后台处理
一般地,我们在处理表单(form表单哦)数据时,传输对象或字符串到后台,Spring MVC或SpringBoot的Controller接收时使用一个对象作为参数就可以被正常接收并封装到对象中.这种方 ...
- ajax使用json数组------前端往后台发送json数组及后台往前端发送json数组
1.引子 Json是跨语言数据交流的中间语言,它以键/值对的方式表示数据,这种简单明了的数据类型能被大部分编程语言理解.它也因此是前后端数据交流的主要方式和基础. 2.前端往后台传输json数据 第一 ...
- Springboot+ajax传输json数组以及单条数据的方法
Springboot+ajax传输json数组以及单条数据的方法 下面是用ajax传输到后台单条以及多条数据的解析的Demo: 结构图如下: 下面是相关的代码: pom.xml: <?xml v ...
- Json在前台与后台之间的使用
一.将前台数据,使用ajax中的post.get传到后台 $.ajax({ type: 'post', url: 'your url', data: $("form").seri ...
- js Form表单转json格式,及后台接收(多种方法)
转载:https://blog.csdn.net/qq_40138785/article/details/81533015 一.serialize()方法格式:var data = $("# ...
- 实现JS数组传递
//如果只是一维数组 var list = Request.Form.GetValues("diary[]"); public ContentResult TestHtmlTwo ...
- jsp采用ajax传递数组给后台controller并遍历
ajax传递数组,期间出各种各样的问题,那叫一个头疼,网上各种查,都没有解决,最终摸索摸索加借鉴搞定,不多说,上代码 /* 复选框选定部分 */ $("#delete").clic ...
随机推荐
- 141 Linked List Cycle(判断链表是否有环Medium)
题目意思:链表有环,返回true,否则返回false 思路:两个指针,一快一慢,能相遇则有环,为空了没环 ps:很多链表的题目:都可以采用这种思路 /** * Definition for singl ...
- 无法嵌入互操作类型“Microsoft.Office.Interop.Word.ApplicationClass”。请改用适用的接口。
引用里找到Microsoft.Office.Interop.Word右键属性 在嵌入互操作类型里,选上False就行了.
- Js仿弹框
收藏一个简单实用的JS弹框,通过隐藏和显示div来实现,代码来自脚本之家! <html> <head> <title> LIGHTBOX EXAMPLE </ ...
- php $_server 整理
$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关. $_SERVER['argv'] #传递给该脚本的参数. $_SERVER['argc'] ...
- python面试题大全
注:本面试题来源于网络,转载请注明来自http://www.cnblogs.com/goodhacker/p/3366618.html. 1. (1)python下多线程的限制以及多进程中传递参数的方 ...
- Stockbroker Grapevine
http://poj.org/problem?id=1125 #include<cstdio> #include<cstring> #include<cmath> ...
- Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)
Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...
- 关于JavaScriptSerializer使用的问题
初学C#的同学们,你们有没有这样的问题:遇到不懂的问题,就到处搜索,好不容易搜索出来答案吧,却发现缺少引用,缺少引用就添加引用吧,结果在添加中找不到!是不是很恼火? 解决办法:查看项目的目标框架,如果 ...
- EditText输入长度动态控制,最大长度为16位,小数点后面最大为2位,输入整数只能为13位
首先在xml 中把inputType设置为numberDecimal (包含小数点)然后在把maxLeng设置为16 package com.example.numbertest; import an ...
- ubuntu14.04.2 添加ppa remastersys源 镜像ubuntu系统