ASP.NET MVC3:使用Jquery添加文本框并绑定到Model

时间:2012-04-03 09:13:06

标签: jquery asp.net-mvc data-binding razor model

我创建了一个视图,提示用户输入一些带有发票编号的记录并将其保存到数据库中。现在出现了新的要求,我们必须能够为一条记录保存1..N发票号码。在数据库中没有问题,但我找不到一种更改视图和模型的简洁方法。 截至目前我正在这样做:

 <div class="editor-label">
            @Html.LabelFor(x => x.InvoiceNumber1)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(x => x.InvoiceNumber1)
            @Html.ValidationMessageFor(x => x.InvoiceNumber1)
        </div>

为了满足新的要求,我必须创建一种某种按钮,让用户可以在视图中添加其他文本框(通过qjuery)。但是,我如何将这些动态添加的文本框绑定到表单提交上的模型?

2 个答案:

答案 0 :(得分:2)

假设您的模型如下:

// model
public class InvoiceModel
{
    public List<int> InvoiceNumbers { get; set; }
}

现在,如果您为输入InvoiceNumbers[0]InvoiceNumbers[1]等命名,则值将正确绑定到模型的InvoiceNumbers属性。

答案 1 :(得分:2)

检查http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspxhttp://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/您使用顺序索引但是为了能够删除或使用javacript添加行,您可以使用两个链接中所述的非顺序索引。 此致