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

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

不废话了上代码:

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. [置顶] Linux下发布QT程序

    Linux下发布QT程序 概述 无论在windows下还是在linux下,可执行程序的运行都依赖于相关的运行库,我们需要将依赖的库找到放到特定的位置,让可执行文件能够找到.在不知道可执行文件依赖哪些库 ...

  2. 基于Linux的智能家居的设计(3)

    2  硬件设计 本课题的硬件设计包含主控制器.传输数据设计.数据採集设计.控制驱动设计.显示设计.门禁设计. 2.1  主控制器 依据方案三选择S3C6410主控芯片,S3C6410是由Samsung ...

  3. [转载]vs2017与docker

    基本需求 系统 win10 vs2017 docker 步骤 1.开启系统的hyper-v 2. 重启电脑 3.安装docker 下载地址:https://docs.docker.com/docker ...

  4. Unity3D实践系列05,为GameObject添加额外属性

    在Unity中,通常通过脚本为GameObject添加额外的属性.具体有2种方式:一种是通过硬编码为脚本字段赋值,另一种是通过反射在运行时给脚本字段赋值. 脚本通过字段硬编码为GameObject添加 ...

  5. 在ASP.NET MVC下实现单个图片上传, 客户端服务端双重限制图片大小和格式, 服务端裁剪图片

    在"MVC文件图片ajax上传轻量级解决方案,使用客户端JSAjaxFileUploader插件01-单文件上传"一文中,使用JSAjaxFileUploader这款插件实现了单文 ...

  6. Delphi 文件遍历

    unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  7. iOS-Xcode必备插件XAlign:瞬间优化你的代码

    今天向大家介绍一个非常好用的Xcode代码编辑插件,这个插件可以很快速地使代码对齐,有3种模式:“=”对齐.宏定义对齐和属性对齐 XAlign效果图 1.“=”对齐   2.宏定义对齐     3.属 ...

  8. Oracle简易界面工具 (Oracle 10g, Oracle 11g)

    Oracle简易界面工具 背景:偶在远程机上干活,须要调用到 Oracle 11gserver的数据,远程机上已安装Oracle client, 但 sql plus 和 sql developer ...

  9. Robotframework(3):使用pycharm编写和运行RF脚本

    转自:http://blog.csdn.net/ccggaag/article/details/77529724 我们在使用Robotframework时,经常编写脚本的人或许会不习惯,不过没关系!我 ...

  10. TX1 flash backup & restore

    备份:耗时2.5小时 ./tegraflash.py --bl cboot.bin --applet nvtboot_recovery.bin --chip 0x21 --cmd "read ...