Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 从.net核心数据绑定中的窗体获取对象列表_Asp.net Core_.net Core_Asp.net Core Mvc_Asp.net Core 2.0 - Fatal编程技术网

Asp.net core 从.net核心数据绑定中的窗体获取对象列表

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

我将.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="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(成员成员)
有关一些选项,请参阅