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

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

不废话了上代码:

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. Programmed Adjustable Power

    Programmed Adjustable Power I just explored an easy scheme to design a high precision programmed adj ...

  2. What is CMSIS-DAP

    The mbed HDK and mbed-enabled hardware support the CMSIS-DAP debug interface, which consists of an a ...

  3. 在windows server 2008 R2 64bit上面配置PI OPC Server的DCOM

    今天想配置PI OPC SERVER的DCOM设置,但是发现在“运行dcomcnfg->组件服务-计算机-我的电脑-DCOM设置”中找不到PI OSI DA Server.如下图所示 这是以前从 ...

  4. Delphi 获取命令行输出的函数

    function GetDosOutput(CommandLine: string; Work: string = 'C:\'): string; var SA: TSecurityAttribute ...

  5. 对json数据key进行替换

    原文:https://blog.csdn.net/qq_39750658/article/details/83411897 import java.util.HashMap; import java. ...

  6. 详细解读Volley(五)—— 通过源码来分析业务流程

    一.初始化请求队列并运行 我们用Volley时,最先开始的就是初始化请求队列,一种常见的写法如下: public class MyApplication extends Application { p ...

  7. 在EditText中添加QQ表情

    本文参考自:http://blog.csdn.net/wulianghuan/article/details/8583921 在输入框中输入表情是每个聊天软件的必备功能,做到这点仅需要将表情放入工程图 ...

  8. GridView和SimpleAdapter实现网格布局

    android:horizontalSpacing 元素之间的水平间距 android:verticalSpacing     元素之间的垂直间距 android:numColumns         ...

  9. WinForm 自动完成控件实例代码简析

    在Web的应用方面有js的插件实现自动完成(或叫智能提示)功能,但在WinForm窗体应用方面就没那么好了. TextBox控件本身是提供了一个自动提示功能,只要用上这三个属性: AutoComple ...

  10. 全文居中及DIV居中

    第一种方案(全文档): body {     text-align: center; } body div {     margin: 0 auto; } 第二种方案(某DIV): .testing- ...