我是 MVC 的新手,正在尝试遵守最佳实践。
我正在使用现有数据项目为联系人创建一个编辑/保存表单,该项目需要在一个表单上加载和保存多个类。
对于联系人,我需要加载一个人的姓名、公司详细信息、电话号码、地址字段等。这些都是数据项目中的一个单独的类,但我想在一个视图/模型中进行编辑和保存。问题是我似乎必须将所有必要的 PK 和 FK ID 作为隐藏字段放在我的视图中,感觉应该有更好的方法来做到这一点......
对于我的模型,我使用现有的数据类对象作为字段:
public class ContactEditModel
{
public Person PersonObjectName { get; set; }
public Company CompanyObjectName { get; set; }
public Address AddressObjectName { get; set; }
....
}
我为其中的每一个实例化一个对象并将它们加载到我的模型中,并且我想在提交编辑视图时保存任何更改。由于我已经在现有数据项目中为这些类(以及完成工作的存储过程)提供了加载和保存方法,因此重用代码而不是指定模型上的所有字段并重新- 编写代码。但是,如果不声明视图上的所有隐藏字段,则 ID(个人、公司、地址等)在保存时不会保留在模型中,因此我必须指定要保留在隐藏项中的每个字段。
隐藏字段代码示例如下:
@Html.HiddenFor(model => model.PersonObjectName.ID)
@Html.HiddenFor(model => model.PersonObjectName.Version)
@Html.HiddenFor(model => model.PersonObjectName.CompanyID)
@Html.HiddenFor(model => model.AddressObjectName.ID)
@Html.HiddenFor(model => model.AddressObjectName.AddressTypeID)
@Html.HiddenFor(model => model.AddressObjectName.Version)
.....
任何关于更好方法的想法将不胜感激。谢谢。