一、说明

1.Asp.Net Mvc中Action的参数可以自动接收和反序列化form表单的值,

2.对于name=value类型,只要Action参数的变量名和input的name相同就行,不区分大小写

3.对于Model类型的,只要Action参数Model的字段名和input的name相同就行,不区分大小写

4.对于List类型,如下

二、List 基础数据类型提交

Html代码

<div class="panel panel-default"><div class="panel-heading"><div class="panel-title"> List 基础数据类型提交</div></div><div class="panel-body"><form action="@Url.Action("TestOne")" method="post"><div class="form-group"><input name="name" value="张三" /></div><div class="form-group"><input name="name" value="李四" /></div><input class="btn btn-success" type="submit" value="提交" /></form></div>
</div>

Action接收

public JsonResult TestOne(List<string> name)
{return Json(name);
}

参数传递:

显示结果:

三、List<Model>类型提交json数组

<div class="panel panel-default"><div class="panel-heading"><div class="panel-title"> List&lt;Model&gt; 数据类型提交(一)</div></div><div class="panel-body"><form action="@Url.Action("TestTwo")" method="post"><table><thead><tr><th>ID</th><th>Name</th></tr></thead><tbody><tr><td><input name="ID" value="1" /></td><td><input name="Name" value="张三" /></td></tr><tr><td><input name="ID" value="2" /></td><td><input name="Name" value="李四" /></td></tr></tbody></table><input type="submit" class="btn btn-success" id="submit1" value="提交" /></form></div>
</div>

使用Ajax提交

        $('#submit1').click(function () {var form = $(this).parents('form');var result = [];form.find('tbody tr').each(function () {var thisItem = $(this);result.push({ID: thisItem.find("input:eq(0)").val(),Name: thisItem.find('input:eq(1)').val()})});$.post(form.attr('action'), {stuList: result, //直接提交json数组}, function (data) {alert(data);});return false;});

后台action接收处理

public JsonResult TestTwo(List<Student> stuList)
{return Json(stuList);
}

参数传递:

四、List<Model>类型提交之json数组字符串

HTML内容同上,

整合json数组,以字符串格式传递

$('#submit2').click(function () {var form = $(this).parents('form');var result = [];var data = form.serializeArray();for (var i = 0; i < data.length; i++) {var item = data[i];var stu_i = Math.floor(i / 2); //没2(对象的属性个数)个位一组,整合到一个对象中if (!result[stu_i])result[stu_i] = {}; //初始化数组中的对象result[stu_i][item['name']] = item['value'];}console.info(result);$.post(form.attr('action'), {stuList: JSON.stringify(result), //提交json字符串,后台自己反序列化other: 'test'}, function (data) {alert(data);});return false;
});

action后台参数接收处理

public JsonResult TestThree(string stuList, string other = "没有内容")
{//自己反序列化处理,更灵活处理List<Student> list = JsonConvert.DeserializeObject<List<Student>>(stuList);return Json(new { stu = list, other = other });
}

参数传递:

返回结果:

特别说明

提交的Josn数组整合方式1:从页面dom中获取

//处理方式1,从页面获取值
var result = [];
form.find('tbody tr').each(function () {var thisItem = $(this);result.push({ID: thisItem.find("input:eq(0)").val(),Name: thisItem.find('input:eq(1)').val()})
});

整合方式2:从表单的序列化数组中获取

var result = [];
var data = form.serializeArray();
for (var i = 0; i < data.length; i++) {var item = data[i];var stu_i = Math.floor(i / 2); //没2(对象的属性个数)个位一组,整合到一个对象中if (!result[stu_i])result[stu_i] = {}; //初始化数组中的对象result[stu_i][item['name']] = item['value'];
}
console.info(result);

更多:

通过Url传多个参数方法

Asp.Net MVC是否针对每次请求都重新创建一个控制器实例

ASP.Net MVC 之FileResult

转载于:https://www.cnblogs.com/tianma3798/p/6638837.html

Asp.Net Mvc表单提交之List集合相关推荐

  1. ASP.NET MVC 表单提交教程

    在前面的两篇文章总,我们分别做了一个简单的ASP.NET MVC的例子和进行数据的绑定,在本文中,将通过ASP.NET MVC Framework实现表单的提交,你可以看到,在这里有多种方法来获取表单 ...

  2. asp.net Ajax表单提交 二种方式数据处理 asp.net

    第一种格式 var form = $("#form1"); var data = form.serializeObject(); {"Id":"0&q ...

  3. asp.net表单提交方法:GET\POST介绍

    表单form的提交有两种方式,一种是get的方法,一种是post 的方法,如果没有特殊指定,默认为post.看下面代码,理解ASP.NET Get和Post两种提交的区别: 1.< form i ...

  4. Spring MVC表单防重复提交

    转载自 Spring MVC表单防重复提交 利用Spring MVC的过滤器及token传递验证来实现表单防重复提交. 创建注解 @Target(ElementType.METHOD) @Retent ...

  5. 我和小美的撸码日记(3)之一句话搞定MVC表单页数据绑定与提交

    "尼玛哥,你今天有空么?" "今天周日呀,怎么会没空,你这是要约么?麻辣烫凉皮我都吃,在哪儿,我一会儿就到." "约你妹呀,我昨天都加一天班了,东西到 ...

  6. 我和小美的撸码日记(3)之中的一个句话搞定MVC表单页数据绑定与提交

    另外献上在<线体验Demo地址>希望大家也能从中得到一些启示. 地址:http://121.40.148.178:8080/ . username:guest,password:12345 ...

  7. MVC下HtmlHelper自带BeginForm表单提交与异步Ajax请求

    假如有一个数据表格UserInfo: public class UserInfo {public int Id { get; set; }public string Name { get; set; ...

  8. [JSP暑假实训] 二.JSP网站创建及Servlet实现注册表单提交、计算器运算

    本系列文章是作者暑假给学生进行实训分享的笔记,主要介绍MyEclipse环境下JSP网站开发,包括JAVA基础.网页布局.数据库基础.Servlet.前端后台数据库交互.DAO等知识. 本篇文章开始讲 ...

  9. Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交

    在Java EE应用编程中Servlet是基础,JSP是建立在Servlet基础之上的,其他Web框架如Struts.WebWork和Spring MVC都是基于Servlet的.本文主要讲述MyEc ...

最新文章

  1. Flutter 导包 以及体验
  2. 教程:9、网络通信工具
  3. 是否是一个新的机会?
  4. 十四、中文词向量训练一
  5. jquery.form.js插件中ajaxSubmit提交在jquery1.4版本中的应用
  6. C# Winform 窗体美化(目录)
  7. iOS 关于UITableView的黑科技
  8. Educational Codeforces Round 57 (Rated for Div. 2)
  9. PostgreSQL数据库 OLTP高并发请求性能优化
  10. Java二叉排序树(转)
  11. Python 综合应用 —— 名片管理系统
  12. 【cf585-div2: B】 The Number of Products(dp/推导)
  13. modbus tcp主站和从站_图文讲解PLC通讯MODBUS协议的应用及编程
  14. SpatialDB |单细胞空间转录组数据分析可视化平台
  15. 哈佛幸福课 24人格力量测试
  16. unity3d 不规则外发光描边_PS发光字体教程
  17. Crazy Number
  18. Mac 下 Nginx、PHP、MySQL 和 PHP-fpm 的安装和配置
  19. Python-Tkinter 基础教程
  20. 人员规范操作行为识别算法

热门文章

  1. 哪里有2003系统服务器,服务器2003系统
  2. jquery复选框组清空选中的值_防火墙基本配置:配置策略组
  3. python 正则表达式判断字符串是否为回文_JS使用栈判断给定字符串是否是回文算法示例...
  4. Linux学习笔记-子目录的支持
  5. 2.2线性表的顺序表示和实现
  6. 会计云课堂实名认证后怎么更改_会计云课堂怎么听课 网上听课步骤详解
  7. djnago seeeion
  8. linux脚本 sed,Linux脚本利器sed
  9. kafka java 多线程_20. 多线程开发者实例
  10. restful适用于移动互联网厂商作为业务_Restful架构思想