如何向表单添加其他字段并仍然使用MVC?

时间:2012-07-21 22:07:32

标签: asp.net asp.net-mvc

我想显示一个允许用户输入最多10行信息的表单。如果需要检查,我将使用“添加额外行”按钮,一次添加一行。对于像这样的东西,我的Model类会是什么样的?当我使用javascript添加新行时,如何将新行绑定到模型中?

3 个答案:

答案 0 :(得分:1)

来自Phil Haack的

This文章向您展示了如何绑定到集合。您需要使用javascript来创建具有正确名称的新行。

答案 1 :(得分:0)

这些行可能包含相关值,因此您可以为html中的所有这些输入指定相同的名称,并声明您的操作会接收一组值。

假设你有这个

<form method="post" action="/Controller/YourAction">
    <input type="text" name="row" value="1" />
    <input type="text" name="row" value="2" />
    <input type="text" name="row" value="3" />
    <input type="text" name="row" value="4" />
    <input type="text" name="row" value="5" />
    <input type="text" name="row" value="6" />
    <input type="submit" />
</form>

您需要做的就是在Controller中声明这个

public ActionResult YourAction(int[] row)
{ 
//put your code here
}

你将获得行数组中的所有值

答案 2 :(得分:0)

您可以查看following blog post,它解释了如何实现这一目标。它使用自定义帮助程序(Html.BeginCollectionItem),它允许使用非顺序作为集合索引而不是数字,这使得添加/删除新项目变得更加容易。