我有一个相关的三个数据库表,例如:公司(一一)联系人(一一)地址,
我需要创建一个公司,然后为公司创建联系人,然后在一个页面中为联系人创建一个地址(以方便用户)。
用户不必一次填写所有详细信息并提交,他可以今天创建公司,明天添加联系人,然后明天编辑公司详细信息等。这些操作是用户随机的...
有很多方法,但是使用 ASP.NET MVC 实现此目的的最佳方法是什么?
谢谢
最佳答案
恕我直言,最好的方法是为每个表创建一个 PartialView,并为 View 创建一个表单 View 模型,该模型将每个表对象作为一个属性
FormViewModel
Company company {get;set;}
Contact contact {get;set;}
address address {get;set;}
您会将上述模型返回到 Controller 中的 View return View(FormViewModel);
然后当您渲染每个部分时,您将传入适当的模型。
Html.RenderPartial("ContactEntry", Model.contact);
当您提交表单时,您会执行 TryUpdateModel 以获取值并开始保存到您的数据层。
编辑回应罗伯特
Sam,您还需要确保在填写数据时启用/禁用任一字段。例如,您不能先有没有公司的联系人。
如果您足够兴奋,您可以在填写数据时检查数据。因此,当用户完成表单时,您会先激活字段而不保存。您可以使用 jQuery 甚至可以用 MVC 编写的客户端验证器来实现这一点。
关于c# - ASP.NET MVC 中的局部 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3339800/