移动MVC蓝调。我正在尝试在视图中填充空列表并将其传递给控制器。这里是下面的模型
//Model
public class Person{
string name {get;set;}
int age {get;set;}
}
这是我想将List发送给
的控制器//Controllers
[HttpPost]
public ActionResult GetPeople(List<Person> people) //Trying to get here
{
foreach(var person in people)
{
//Do Work
}
ActionResult.Redirect(/Somewhere);
}
这是我的视图所依赖的初始控制器,它创建并传递一个空列表
public ActionResult Index()
{
var people = new List<People>();
return View(people);
}
这是观点。困惑点。我不知何故需要使用表单添加到List然后提交回GetPeople控制器
//Index View
@model List<People> //This starts out empty;
<form method="POST" action="/Home/GetPeople">
<div name="person">
<input name="name" />
<input name="age" />
</div>
<button> Add Another Person</button> //I'm thinking this would create another person div which would be added to the list to be passed to the controller someohow
<button> Submit </button> //Sends List<Person> to GetPeople controller
</form>
有什么想法吗?感谢
答案 0 :(得分:1)
您需要在视图中维护输入字段的名称。要作为列表成员发布,您的字段应该看起来像
<div>
<input name="people[0].name" />
<input name="people[0].age" />
</div>
对于“添加另一个人”按钮,您可能需要一些javascript来查找当前索引并插入此索引递增的字段。需要注意的一件事是您可能希望为新条目添加“删除”按钮 - 确保它不会在标记中产生间隙。