form怎么传list到后台?

-一个大坑 2018-09-18 05:19:36
serialize, serializeArray()都不行
...全文
1415 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 版主 2018-09-20
  • 打赏
  • 举报
回复
你看一下,这个是一个Model具有普通属性和泛型属性在内,
一起提交到后台的示例
https://blog.csdn.net/hanjun0612/article/details/51918059
-一个大坑 2018-09-20
  • 打赏
  • 举报
回复
引用 17 楼 jianmin91 的回复:
form不是可以直接提交整个表单吗

提交到后台是类,list要自己拼接,虽然代码也比较简单。
123321... 2018-09-20
  • 打赏
  • 举报
回复
form不是可以直接提交整个表单吗
-一个大坑 2018-09-20
  • 打赏
  • 举报
回复
引用 11 楼 Logerlink 的回复:

<script>
$('.btn-success').click(function () {
var data = $('#paymentItemFrom').serializeArray();
var XArr = data.filter(x => {
return x.name === "X";
});
var YArr = data.filter(x => {
return x.name === "Y";
});
var WidthArr = data.filter(x => {
return x.name === "Width";
});
var HeightArr = data.filter(x => {
return x.name === "Height";
});
var arr = [];
XArr.forEach((val,index) => {
let obj = {
X: XArr[index].value,
Y: YArr[index].value,
Width: WidthArr[index].value,
Height: HeightArr[index].value
};
arr.push(obj);
});
console.log(arr);

$.post("Add", { list: arr}, function (res) {
console.log(res);
});
});
</script>


public ActionResult Add(List<Zuobiao> list)
{
return View();
}

实体类

public class Zuobiao
{
public string X { get; set; }
public string Y { get; set; }
public string Width { get; set; }
public string Height { get; set; }
}

介绍很详细,谢谢。
我想知道有没有方法直接把form表单转成可用json,而不用自己拼接
-一个大坑 2018-09-20
  • 打赏
  • 举报
回复
引用 14 楼 xiaoxiangqing 的回复:
只能用json传

就是用json传,我想问下有没有直接把表单转成可用的json的方法
xiaoxiangqing 2018-09-20
  • 打赏
  • 举报
回复
只能用json传
Logerlink 2018-09-19
  • 打赏
  • 举报
回复

<script>
$('.btn-success').click(function () {
var data = $('#paymentItemFrom').serializeArray();
var XArr = data.filter(x => {
return x.name === "X";
});
var YArr = data.filter(x => {
return x.name === "Y";
});
var WidthArr = data.filter(x => {
return x.name === "Width";
});
var HeightArr = data.filter(x => {
return x.name === "Height";
});
var arr = [];
XArr.forEach((val,index) => {
let obj = {
X: XArr[index].value,
Y: YArr[index].value,
Width: WidthArr[index].value,
Height: HeightArr[index].value
};
arr.push(obj);
});
console.log(arr);

$.post("Add", { list: arr}, function (res) {
console.log(res);
});
});
</script>


public ActionResult Add(List<Zuobiao> list)
{
return View();
}

实体类

public class Zuobiao
{
public string X { get; set; }
public string Y { get; set; }
public string Width { get; set; }
public string Height { get; set; }
}


-一个大坑 2018-09-19
  • 打赏
  • 举报
回复
引用 9 楼 mirror030 的回复:
写几行JS就可以了.这个已经很简单了
不写JS情况下,表单提交按钮点击后后端能接收到有name属性值的表单控件.
我看你input上没有name属性

上面有html代码,文本框都有name
mirrorspace 2018-09-19
  • 打赏
  • 举报
回复
写几行JS就可以了.这个已经很简单了
不写JS情况下,表单提交按钮点击后后端能接收到有name属性值的表单控件.
我看你input上没有name属性
-一个大坑 2018-09-19
  • 打赏
  • 举报
回复
引用 2 楼 mirror030 的回复:
要这样干
let listdata=[1,2,3,4,5,6,7,8];
para.listdata[0]=1
para.listdata[1]=2
...
para.listdata[7]=8
然后ajax这个para
后端 就可以List<> listdata 参数接收到了

如果不喜欢这种搞法,还有一种更简单的
直接将参数弄成JSON字符串,使用JSON3这个库转一下,
后台拿到之后再用newton转为对象

下面贴的有html代码,有没有直接用某个方法直接转可用json,而不用自己写代码拼接
-一个大坑 2018-09-19
  • 打赏
  • 举报
回复
引用 3 楼 porenasckx 的回复:
json 字符串才是各个端通用的!

我想知道有没有方法直接把form表单转成可用json,而不用自己拼接
-一个大坑 2018-09-19
  • 打赏
  • 举报
回复
附上要提交的页面代码

<form id="paymentItemFrom" onsubmit="return false;">
<div class="row">
@for(int i=1; i<ViewBag.PageNo; i++)
{
<div class="col-sm-12 row-top">
<div class="input-group">
<span class="input-group-addon">X坐標(px)</span>
<input type="text" class="form-control empTypeahead" name="X"/>
</div>
</div>
<div class="col-sm-12 row-top">
<div class="input-group">
<span class="input-group-addon">Y坐標(px)</span>
<input type="text" class="form-control empTypeahead" name="Y"/>
</div>
</div>
<div class="col-sm-12 row-top">
<div class="input-group">
<span class="input-group-addon">寬度(px)</span>
<input type="text" class="form-control empTypeahead" name="Width" />
</div>
</div>
<div class="col-sm-12 row-top">
<div class="input-group">
<span class="input-group-addon">高度(px)</span>
<input type="text" class="form-control empTypeahead" name="Height"/>
</div>
</div>
}
</div>
</form>
  • 打赏
  • 举报
回复
哇!你这不就是一堆HTML嘛,还说是list? 你直接定一个变量把这一堆都装进去,丢给后台行不行啊
stevenjin 2018-09-18
  • 打赏
  • 举报
回复
用newton序列化到页面
stevenjin 2018-09-18
  • 打赏
  • 举报
回复
得这样才行,JonBehavior.AllowGet必须要写的。
public JonResult AAAAA(List<AModel> sealList)
{
return Json("OK",JonBehavior.AllowGet);
}
E次奥 2018-09-18
  • 打赏
  • 举报
回复
json 字符串才是各个端通用的!
mirrorspace 2018-09-18
  • 打赏
  • 举报
回复
要这样干
let listdata=[1,2,3,4,5,6,7,8];
para.listdata[0]=1
para.listdata[1]=2
...
para.listdata[7]=8
然后ajax这个para
后端 就可以List<> listdata 参数接收到了

如果不喜欢这种搞法,还有一种更简单的
直接将参数弄成JSON字符串,使用JSON3这个库转一下,
后台拿到之后再用newton转为对象
-一个大坑 2018-09-18
  • 打赏
  • 举报
回复
$.post("/Home/AAAAA",
$("#paymentFrom").serializeArray(),
function(data){
alet(data)
})

public IActionResult AAAAA(List<AModel> sealList)
{
return Json("OK");
}

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧