MVC5中使用jQuery Post 二维数组和一维数组到Action
很久没有写了,最近在做一个MVC项目,这是我做的第一个MVC项目。之前可以说多MVC一点都不了解,今天把昨天遇到的一个问题记录下来。MVC大神就请飘过吧,跟我遇到同样问题的可以进来看看。遇到的第一个问题是一个列表页保存排序时传二维数组的问题。以下是我的代码:
jQuery("#btnSave").click(function () {
var list = [];
jQuery("#lists>tbody>tr").each(function (i) {
list.push({ "id": this.cells[].children.hidId.value, "sort": this.cells[].children[].children[].children.txtSortId.value });
}); jQuery.ajax({
type: "post",
url: "@Url.Action("NavSaveSortId", "Setting")",
data: jQuery.param({ sortinfo: list }),
dataType: "json",
traditional: true,
success: function (data) {
var json = eval("(" + data + ")");//必须加否则字符串不能序列化成json
jQuery.gritter.add(json);
},
error: function (data) {
console.debug(data);
}
});
});
以上传过去的数据格式是一个数组类型,里面包括了id,sort属性。
后台action接收代码为:
[HttpPost] public JsonResult NavSaveSortId(Dictionary<string, string>[] sortinfo) { for (int i = ; i < sortinfo.Length; i++) { int id = Convert.ToInt32(sortinfo[i]["id"].ToString()); int sortId; if (!int.TryParse(sortinfo[i]["sort"].ToString().Trim(), out sortId)) { sortId = ; } client.UpdateField(id, "sort_id=" + sortId.ToString()); } }
以上就是传输数组后台用Dictionary接收参数的实例。当然在实际使用时请记得加上安全验证以及数据校验。
然后在项目里面还用到了一个传输一维数组的功能这里也记录出来,代码和上面的类似,但是这个功能是用在批量删除的。
jQuery("#btnDelete").click(function () { bootbox.confirm("确认要删除选中的记录吗?", function (result) { if (result) { var idarry = []; jQuery("#lists>tbody>tr").each(function (i) { console.debug(this.cells[].children[].children[].checked); if (this.cells[].children[].children[].checked) { idarry.push(this.cells[].children.hidId.value); } }); jQuery.ajax({ type: "post", url: "@Url.Action("NavDel", "Setting")", data: { ids: idarry }, dataType: "json", traditional: true, success: function (data) { var json = eval("(" + data + ")");//必须加否则字符串不能序列化成json jQuery.gritter.add(json); }, error: function (data) { console.debug(data); } }); } }); });
这个数组应该比上面那种更常见后台接收就不需要用Dictionary。直接用数组string[]接收就可以了:
[HttpPost] public JsonResult NavDel(string[] ids) { //逻辑处理···· }
其实在开发中还遇到了很多问题,可能是我第一次接触mvc。不过真的用了mvc之后确实不太愿意用webform了。欢迎各位感兴趣的同学们一起来交流学习
转载请注明:放肆雷特 » MVC5中使用jQuery Post 二维数组和一维数组到Action
MVC5中使用jQuery Post 二维数组和一维数组到Action的更多相关文章
- C#中如何获取一个二维数组的两维长度,即行数和列数?以及多维数组各个维度的长度?
如何获取二维数组中的元素个数呢? int[,] array = new int[,] {{1,2,3},{4,5,6},{7,8,9}};//定义一个3行3列的二维数组int row = array. ...
- php - 二维数组转一维数组总结
二维数组转一维数组总结 例如将如下二位数组转以为以为一维数组 $records = [ [ 'id' => 2135, 'first_name' => 'John', 'last_name ...
- [PHP]快速实现:将二维数组转为一维数组
如何将下面的二维数组转为一维数组. $msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'na ...
- numpy基础教程--将二维数组转换为一维数组
1.导入相应的包,本系列教程所有的np指的都是numpy这个包 1 # coding = utf-8 2 import numpy as np 3 import random 2.将二维数组转换为一维 ...
- 从txt文件中读取数据放在二维数组中
1.我D盘中的test.txt文件内的内容是这样的,也是随机产生的二维数组 /test.txt/ 5.440000 3.4500006.610000 6.0400008.900000 3.030000 ...
- 论C语言中二级指针和二维数组之间的区别
刚开始学习C语言的时候,觉得一个数组可以定义一个一级指针去访问,想当然的就觉得可以定义一个二级指针去访问二维数组.很显然这是错误的. 我们来看看C语言的数组在内存中的存储方式. 实际上C语言中的数组, ...
- php中foreach循环遍历二维数组
最近在用tp3.2框架,在查询的时候用到了select(),这条语句返回的是二维数组,所以在对返回的数据做处理时,遇到了些麻烦,百度了下foreach,终于用foreach解决了数据的筛选问题 (因为 ...
- thinkphp中配置信息的二维数组设置与使用
有时候配置信息是二维数组 1.配置 <?php return array ( // 阿里大鱼短信配置 'dayu_appkey'=>'xxx', 'dayu_secretKey'=> ...
- JAVA中如何创建一个二维数组,然后给二维数组赋值!
普通的赋值是:int[][] i = {{1,2,3},{2,3,4},{1,3,4}}; 如果是其他情况可以这样:比如: import java.util.* public class TT(){ ...
随机推荐
- 用Keepalived搭建双Nginx server集群,防止单点故障
综述: 浏览器访问虚拟IP: 192.168.1.57, 该虚拟IP被Keepalived接管,两个Keepalived进程分别运行在物理IP为192.168.1.56和192.168.1.59服务器 ...
- social-auth-app-django模块
一 原文地址:http://www.cnblogs.com/adc8868/p/7665864.html social-auth-app-django模块是专门用于Django的第三方登录OAuth2 ...
- 单线程实现并发——协程,gevent模块
一 并发的本质 1 切换 2 保存状态 二 协程的概念 协程,又称微线程,纤程.英文名Coroutine.单线程下实现并发,用户从应用程序级别控制单线程下任务的切换,注意一定是遇到I/O才切. 协程的 ...
- foj Problem 2283 Tic-Tac-Toe
Prob ...
- UVa12333 Revenge of Fibonacci
高精度 trie 暴力预处理出前100000个fibonacci数,将每个数的前40位数字串插入到trie中,记录每个结点最早可以由哪个数字串到达. 然后依次回答询问即可. 存fibonacci数的数 ...
- java mail Received fatal alert: handshake_failure java 无法发送邮件问题 java 发送qq邮件(含源码)
java 无法发送邮件问题 java 发送qq邮件 报错:java mail Received fatal alert: handshake_failure (使用ssl) javax.mail.M ...
- java中线程切换的开销
思路: 开三个线程A,B,C 线程A不断的调用LockSupport.park()阻塞自己,一旦发现自己被唤醒,调用Thread.interrupted()清除interrupt标记位,同时增加自增计 ...
- Netty中NioEventLoopGroup的创建源码分析
NioEventLoopGroup的无参构造: public NioEventLoopGroup() { this(0); } 调用了单参的构造: public NioEventLoopGroup(i ...
- Careercup | Chapter 4
二叉查换树,左孩子小于等于根,右孩子大于根. 完全二叉树,除最后一层外,每一层上的节点数均达到最大值:在最后一层上只缺少右边的若干结点. complete binary tree 满二叉树,完美二叉树 ...
- rocketMq---------相关命令
搭建就不详细说了,cent7.x的系统,openJdk8,maven3.x,gradle4.10.2, git 1.8.3.1 直接下载相关的二进制压缩包,解压即用,方便. 下面看常用的管理命令 ro ...