我创建了一个视图,提示用户输入一些带有发票编号的记录并将其保存到数据库中。现在出现了新的要求,我们必须能够为一条记录保存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)。但是,我如何将这些动态添加的文本框绑定到表单提交上的模型?
答案 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.aspx和http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/您使用顺序索引但是为了能够删除或使用javacript添加行,您可以使用两个链接中所述的非顺序索引。 此致