【发布时间】:2013-04-03 05:42:13
【问题描述】:
我需要使用 IList 地址更新公司类。这些是我的数据模型。
// Entity class Company — managed by Nhibernate
public class Company
{
public virtual IList<Address> _addresses { get; set; }
public Company()
{
_addresses = new List<Address>();
}
}
// Entity class Address — managed by Nhibernate
public class Address
{
public virtual string line1 { get; set; }
public virtual string line1 { get; set; }
}
我在控制器的 GET 操作中将数据从 Entity 类打包到 Viewmodel,并在控制器的 POST 操作中将数据从 Viewmodel 解包回 Entity 类。
这是我的视图模型。
// Class CompanyRequest
public class CompanyRequest
{
public IList<AddressRequest> AddressRequests;
}
//Class AddressRequests
public class AddressRequest
{
public string line1 { get; set; }
public string line1 { get; set; }
}
我使用局部视图来显示每个地址框。对于 AddressRequests 中的每个 AddressRequest,我将对象传递给具有正确设置前缀的局部视图。
for(var i = 0 ; i < AddressRequests.Count() ; i++)
{
ViewData["Prefeix"] = String.Format("AddressRequests[{0}]", i);
Html.RenderPartial("_addressPartial", AddressRequests[i]);
}
我需要能够添加“添加新地址”按钮,以便用户可以将新地址添加到此列表中。这必须在不刷新页面的情况下完成。当用户单击该按钮时,会出现另一个地址框(我猜是相同的部分)。然后用户编辑该框并按下“保存”按钮。这个保存按钮应该保存整个公司数据,而不仅仅是地址。
有没有办法做到这一点?非常感谢任何帮助!
【问题讨论】:
标签: asp.net-mvc-3 asp.net-ajax model-binding asp.net-mvc-viewmodel