C# 动态创建绑定到模型的字段

C# 动态创建绑定到模型的字段,c#,asp.net-mvc,C#,Asp.net Mvc,我在点击添加按钮时动态创建了两个文本框。 一个是名字,一个是姓氏 以下是我的模型中的内容: public List<UserName> FullName{ get; set; } 对于名字,我将文本框名称作为firstName,对于lastName,我将文本框名称作为lastName。不确定如何将其与我提交时的位置联系在一起,它将显示为全名列表的一部分您需要在视图中包含输入的索引信息/文本框,以便MVC model binder知道如何将它们放回列表中,例如: <input

我在点击添加按钮时动态创建了两个文本框。 一个是名字,一个是姓氏

以下是我的模型中的内容:

public List<UserName> FullName{ get; set; }

对于名字,我将文本框名称作为firstName,对于lastName,我将文本框名称作为lastName。不确定如何将其与我提交时的位置联系在一起,它将显示为全名列表的一部分

您需要在视图中包含
输入的索引信息
/
文本框
,以便MVC model binder知道如何将它们放回列表中,例如:

<input type="text" name="[0].FirstName" value="" />
<input type="text" name="[0].LastName" value="" />

<input type="text" name="[1].FirstName" value="" />
<input type="text" name="[1].LastName" value="" />

也可以使用循环:

@for (int i = 0; i < 3; i++) 
{ 
    @Html.TextBoxFor(m => m[i].FirstName)
    @Html.TextBoxFor(m => m[i].LastName)
}
(int i=0;i<3;i++)的
@for
{ 
@Html.TextBoxFor(m=>m[i].FirstName)
@Html.TextBoxFor(m=>m[i].LastName)
}
有关更多信息,请参阅文章



注意:我已重命名您的公共属性名称firstName/lastName,以使用PascalCase而不是camelCase。

如果您的输入在表单中,并且它们有名称,并且未被禁用,则提交表单将把它们发送到后端,无论它们是否是动态创建的。我删除了
jquery
标记,因为这似乎更侧重于询问如何将请求查询参数映射到域元素。您需要提供更多代码。你在哪里提交表格?你不知道如何从文本框中提取数据?
@for (int i = 0; i < 3; i++) 
{ 
    @Html.TextBoxFor(m => m[i].FirstName)
    @Html.TextBoxFor(m => m[i].LastName)
}