Asp.net core 从.net核心数据绑定中的窗体获取对象列表
我将.net core与razor页面一起使用,我有一个模型作为对象列表,如下所示:Asp.net core 从.net核心数据绑定中的窗体获取对象列表,asp.net-core,.net-core,asp.net-core-mvc,asp.net-core-2.0,Asp.net Core,.net Core,Asp.net Core Mvc,Asp.net Core 2.0,我将.net core与razor页面一起使用,我有一个模型作为对象列表,如下所示: public class Member { public List<User> member { get; set; } } public class User { public String fname { get; set; } public String lname { get; set; } } <form asp-controller="Populatio
public class Member
{
public List<User> member { get; set; }
}
public class User
{
public String fname { get; set; }
public String lname { get; set; }
}
<form asp-controller="Population" asp-action="AddMember" method="post" class="form-horizontal" role="form" style="font-family:Cairo-Bold">
<div class="new-help add-form-container">
<input asp-for="member.LastName" type="text" />
<input asp-for="member.Firstname" type="text" />
</div>
<div class="row">
<div class="col-lg-12">
<a class="clone-button"><u> Add another</u></a>
</div>
</div>
$(function () {
$(".clone-button").on('click', function () {
var ele = $(this).closest('.new-help').clone(true);
$(this).closest('.new-help').after(ele);
});
});
如何绑定表单中的文本字段,以便将提交时添加的成员列表返回给控制器?您应该生成索引号如下的元素:
$(function () {
$("#add").click(function (e) {
e.preventDefault();
var i = $(".items").length;
var n = '<input type="text" class="items" name="ListItems[' + i + '].Name" />';
$("#item-list").append(n);
});
});
$(函数(){
$(“#添加”)。单击(函数(e){
e、 预防默认值();
变量i=$(“.items”)。长度;
var n='';
$(“#项目列表”)。追加(n);
});
});
有关更多信息,请参阅此链接:
我发现模型中的列表字段需要以大写字母开头。否则,我无法获得正确的模型绑定
public class Member
{
public int MemberId { get; set; }
public List<User> Users { get; set; }
}
公共类成员
{
public int MemberId{get;set;}
公共列表用户{get;set;}
}
创建视图
@model AddMember.Models.Member
<form asp-action="Create" method="post">
<div class="form-group" id="item-list">
<a href="#" id="add">Add</a>
<br/>
<input type="text" asp-for="Users" class="items" name="Users[0].fname"/>
<input type="text" asp-for="Users" class="items" name="Users[0].lname" />
</div>
<input type="submit" value="Create" class="btn btn-default" />
</form>
@section Scripts {
<script>
$(function () {
$("#add").click(function (e) {
e.preventDefault();
var i = ($(".items").length) / 2;
var n = '<input type="text" class="items" name="Users[' + i + '].fname" />' +
'<input type="text" class="items" name="Users[' + i + '].lname" />'
$("#item-list").append(n);
});
});
</script>
}
@model AddMember.Models.Member
@节脚本{
$(函数(){
$(“#添加”)。单击(函数(e){
e、 预防默认值();
变量i=($(“.items”).length)/2;
变量n=''+
''
$(“#项目列表”)。追加(n);
});
});
}
控制器:
[HttpPost]
public async Task<IActionResult> AddMember(Member member)
[HttpPost]
公共异步任务AddMember(成员成员)
有关一些选项,请参阅