我正在开发一个"创建"用于在数据库中添加新人员记录的视图。除了显示 Person 的输入字段外,该视图还需要允许用户添加一个或多个地址。例如,这是简化的实体关系:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public IEnumerable<Address> Addresses { get; set; }
}
public class Address
{
public string Street{ get; set; }
public string City { get; set; }
public string State { get; set; }
}
我知道我可以使用Razor视图做这样的事情:
在主视图中Views\Person\Create.cshtml
:
@model Person
@Html.TextBoxFor(model => model.FirstName)
@Html.TextBoxFor(model => model.LastName)
@Html.EditorFor(model => model.Addresses)
然后在Views\Person\EditorTemplates\Address.cshtml
:
@model Address
@Html.TextBoxFor(model => model.Street)
@Html.TextBoxFor(model => model.City)
@Html.TextBoxFor(model => model.State)
但是,当您将其填充到填充的地址列表(例如,可能在EditPerson视图中)时,这种方法很有效。但我不确定如何在CREATE情况下使用它,因为地址数量未知。我想我可以使用jquery生成一行新的输入文本框,并仔细命名NAME属性,但这看起来很麻烦。
有人提交过像这样的一对多关系的表单吗?