兄跌 你看到这篇文章的时候已经找到答案了。

我在解决这个问题的端倪的时候已经浪费了我一个下午的休假时间。所以你应该给我一个赞!!!

不废话了上代码:

Entity(Model)

[Serializable]
public partial class dictionarys
{ #region Model public string id
{
set;
get;
}
/// <summary>
///
/// </summary>
public string parentID
{
set;
get;
}
/// <summary>
///
/// </summary>
public string text
{
set;
get;
}
/// <summary>
///
/// </summary>
public string value
{
set;
get;
}
/// <summary>
///
/// </summary>
public string orderIndex
{
set;
get;
}
/// <summary>
///
/// </summary>
public bool isSystem
{
set;
get;
}
/// <summary>
///
/// </summary>
public bool isDel
{
set;
get;
}
/// <summary>
///
/// </summary>
public DateTime createTime
{
set;
get;
}
/// <summary>
///
/// </summary>
public DateTime updateTime
{
set;
get;
}
#endregion Model }

Controllers的代码如下:

public ActionResult Test1()
{
List<DapperTemplate.Model.dictionarys> list1 = new List<DapperTemplate.Model.dictionarys>();
int i = ;
while (i < )
{
list1.Add(new DapperTemplate.Model.dictionarys()
{
id = Guid.NewGuid().ToString(),
text = "项目" + i,
value = "项目" + i,
parentID = "0000-0000-0000-0000-0000",
orderIndex = i.ToString(),
isSystem = false,
isDel = false,
createTime = DateTime.Now,
updateTime = DateTime.Now, }); i++;
} return View(list1);
}

View的代码如下:

@model List<DapperTemplate.Model.dictionarys>
<form action="/dictionarys/Test" method="post" id="form1">
@for (int i = ; i < Model.Count; i++)
{
<div>
@Html.Raw(string.Format("<input type='text' name='list[{0}].id' value='{1}'/>", i.ToString(), Model[i].id))
@Html.Raw(string.Format("<input type='text' name='list[{0}].text' value='{1}'/>", i.ToString(), Model[i].text))
@Html.Raw(string.Format("<input type='text' name='list[{0}].value' value='{1}'/>", i.ToString(), Model[i].value)) </div>
}
<input type="submit" value="提交" />
</form>

<input type="button"  value="提交" id=”button1” />

点击提交监测Chrome流量发现如下:

发现了一个猫腻这是酱紫的规律:

List[0].propertyName

List[1].propertyName

List[2].propertyName

那么我用jquery的ajax提交一个数据对比一下参数格式。

JavaScript代码如下:

var queryParams = {
"list": [
{
"id": "0001",
"text": "0001",
"value": "0001",
"parentID": "0001",
"text": "0001",
"orderIndex": "0001",
"isSystem": 0,
"isDel": 0,
"createTime": "2018-04-22 20:21:00",
"updateTime": "2018-04-22 20:21:00"
}, {
"id": "0002",
"text": "0002",
"value": "0002",
"parentID": "0002",
"text": "0002",
"orderIndex": "0002",
"isSystem": 0,
"isDel": 0,
"createTime": "2018-04-22 20:21:00",
"updateTime": "2018-04-22 20:21:00"
}, {
"id": "0003",
"text": "0003",
"value": "0003",
"parentID": "0003",
"text": "0003",
"orderIndex": "0003",
"isSystem": 0,
"isDel": 0,
"createTime": "2018-04-22 20:21:00",
"updateTime": "2018-04-22 20:21:00"
}, {
"id": "0004",
"text": "0004",
"value": "0004",
"parentID": "0004",
"text": "0004",
"orderIndex": "0004",
"isSystem": 0,
"isDel": 0,
"createTime": "2018-04-22 20:21:00",
"updateTime": "2018-04-22 20:21:00"
}, {
"id": "0005",
"text": "0005",
"value": "0005",
"parentID": "0005",
"text": "0005",
"orderIndex": "0005",
"isSystem": 0,
"isDel": 0,
"createTime": "2018-04-22 20:21:00",
"updateTime": "2018-04-22 20:21:00"
}
]
} $.ajax({
type: "POST",
dataType: "json",
url: "/dictionarys/Test",
traditional: false,
data: queryParams,
success: function (response) {
alert(JSON.stringify(response));
}
});

点击提交监测Chrome流量发现如下

发现了一个猫腻这是酱紫的规律:

List[0][ propertyName]

List[1][ propertyName]

List[2][ propertyName]

原来是这里有这么个鬼猫腻

 

List[2]. propertyNameList[2][ propertyName]

音乐响起!

我们不一样!

我们不一样!

我们不一样!

 

Fuck  jquery 序列化提交就是这个鬼样子,我也很绝望啊!!!

 

 

于是乎我度娘了一下卧槽卧槽卧槽还真的有解决办法了。

JavaScript代码如下:

function parseParam(param, key) {
var paramStr = ''
if (param instanceof String || param instanceof Number || param instanceof Boolean) {
paramStr += '&' + key + '=' + encodeURIComponent(param)
} else {
$.each(param, function (i, p) {
if (p == null || p == undefined)
return true
var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i)
paramStr += '&' + parseParam(this, k)
})
}
return paramStr.substr(1)
}

调用如下:

 $.ajax({
type: "POST",
dataType: "json",
url: "/dictionarys/Test",
traditional: false,
data: parseParam(queryParams),
success: function (response) {
alert(JSON.stringify(response));
}
});

好了可以愉快的玩耍了!!!

哎 西八!

如果这篇文章对您有帮助,您可以打赏我

技术交流QQ群:15129679

ASP.NET MVC提交LIST列表到后台接收不到数据的更多相关文章

  1. FineAdmin.Mvc 使用ok-admin+ASP.NET MVC搭建的通用权限后台管理系统

    FineAdmin.Mvc 介绍 使用ok-admin+ASP.NET MVC搭建的通用权限后台管理系统RightControl后台layui模板不太好看,换成ok-admin v2.0重写一遍.项目 ...

  2. ASP.NET MVC提交一个较复杂对象至WCF Service

    前一篇<jQuery.Ajax()执行WCF Service的方法>http://www.cnblogs.com/insus/p/3727875.html 我们有练习在asp.net mv ...

  3. 【转】ASP.NET MVC 入门教程列表

    ASP.NET MVC小论 2008-12-04 11:11 by T2噬菌体, 8052 visits, 网摘, 收藏, 编辑 摘要:ASP.NET MVC作为微软官方的.NET平台下MVC解决方案 ...

  4. ASP.NET MVC 学习3、Controller左手从Model获取数据,右手传递到View页面

    参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-dat ...

  5. Spring Mvc 页面传递数组到后台接收

    1.定义一个简单的类 User.java public class User { private Integer id; private String name; public Integer get ...

  6. 使用SignalR ASP.NET Core来简单实现一个后台实时推送数据给Echarts展示图表的功能

    什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功能添加到应用程序的功能. 实时 web 功能使服务器端代码可以立 ...

  7. 关于delete请求,后台接收不到数据

    在前端用axios需要这样写 /** * 删除数据 */export function del(url, data = {}) { return axios.delete(url, { data: q ...

  8. 在asp.net mvc中将checkbox传到后台时总是true的解决方法

    我今天在做同城交友网站(www.niyeuwo.com)时发现,不管checkbox是否选 中,传到Controller时总是true,后来在查网上查了资料才知道,原来是jQuery在传值时写错了. ...

  9. Asp.net mvc上传多张图片后台存储

    前台页面通过<file name="img">标签数组上传图片,后台根据Request.Files["img"]来接收前台上传的图片. 1 Syst ...

随机推荐

  1. setInterval设置停止和循环

    原文链接:http://caibaojian.com/setinterval-times.html 需要知道已经经过了多少次或者说过多久就会停止 var timesRun = 0; var inter ...

  2. Direct3d 设备丢失 (device lost) (转载)

    转:http://blog.csdn.net/kuangfengwu/article/details/7674074 1.什么时候设备丢失 一个Direct3D设备, 有两种状态: 操作状态或丢失状态 ...

  3. android编译错误“OnClickListener cannot be resolved to a type”

    在android代码编译时可能会出现如下错误: 部分代码: <span style="font-size:18px;">public void onCreate(Bun ...

  4. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(1) Calendar

    Java 操作日期/时间,往往会涉及到Calendar,Date,DateFormat这些类. 最近决定把这些内容系统的整理一下,这样以后使用的时候,会更得心应手.本章的内容是主要讲解“Java时间框 ...

  5. C#编程(七十二)----------DynamicObject和ExpandoObject

    DynamicObject和ExpandoObject 1.ExpandoObject表示一个对象,该对象包含可在运行时动态添加和移除的成员.这个类和动态类型有关,这个类能做些什么? 案例: //Ex ...

  6. 【Centos】centos查看磁盘使用情况

    1.查看分区和磁盘 lsblk 查看分区和磁盘 2.查看空间使用情况 df -h 查看空间使用情况 3.分区工具查看分区信息 fdisk -l 分区工具查看分区信息 4.查看分区 cfdisk /de ...

  7. CQRS:When to use CQRS

    Now that we are at the end of our journey, we can suggest some of the criteria you should evaluate t ...

  8. python测试开发django-35.xadmin注册表信息

    前言 xadmin后台如果要对表的内容增删改查,跟之前的admin.py文件里面写注册表信息一样,需在admin.py同一级目录新建一个adminx.py的文件. 然后在adminx.py文件控制页面 ...

  9. PL/SQL 存储过程

    PL/SQL复习九 存储过程 无参数的存储过程: create or replace procedure out_time is begin dbms_output.put_line(to_char( ...

  10. Oracle初级索引学习总结

    前言  索引是常见的数据库对象,建立索引的目的是为了提高记录的检索速度.它的设置好坏,使用是否得当,极大地影响数据库应用程序和Database的性能.虽然有许多资料讲索引的用法,DBA和Develop ...