批量创建模型在视图asp.net mvc 3

时间:2013-02-03 16:20:51

标签: c# asp.net-mvc asp.net-mvc-3 razor

假设我有一个简单的模型:

public class studentNames
{
string name{get; set;}
}

现在,如果我通过创建模式将其置于视图中,则只会创建一个模型。我想在一个视图中创建多个对象。

类似的东西:

<form action="someAction">
Name of student1: <student1 name input box>
Name of student2: <student2 name input box>

<save button>

</form>

单击此按钮时,将在控制器中返回一个List,我可以将它们保存在数据库中。

我怎样才能做到这一点? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以从阅读模型绑定器对binding to lists所期望的约定开始。然后适当地命名输入字段:

@using (Html.BeginForm("SomeAction", "SomeController"))
{
    @for (var i = 0; i < 5; i++)
    {
        <div>
            Name of student: @Html.TextBox("name[" + i + "]", null)
        </div>
    }
    <button type="submit">Save</button>
}

然后您的POST控制器操作可以收集学生的集合:

[HttpPost]
public ActionResult SomeAction(IList<StudentNames> students)
{
    ...
}

如果您希望能够在视图中动态添加和删除此集合中的项目,我建议您阅读Steven Sanderson撰写的Editing a variable length list文章,其中介绍了一种可以构建此类界面的好技术