MVC4 - 创建视图模型列表并传递给控制器

时间:2014-07-29 12:32:33

标签: list asp.net-mvc-4 post view controller

移动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>

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:1)

您需要在视图中维护输入字段的名称。要作为列表成员发布,您的字段应该看起来像

<div>
    <input name="people[0].name" />  
    <input name="people[0].age" />
</div>

对于“添加另一个人”按钮,您可能需要一些javascript来查找当前索引并插入此索引递增的字段。需要注意的一件事是您可能希望为新条目添加“删除”按钮 - 确保它不会在标记中产生间隙。