c# - ASP.NET MVC 中的局部 View ?

标签 c# asp.net-mvc-2 partial-views

我有一个相关的三个数据库表,例如:公司(一一)联系人(一一)地址,

我需要创建一个公司,然后为公司创建联系人,然后在一个页面中为联系人创建一个地址(以方便用户)。

用户不必一次填写所有详细信息并提交,他可以今天创建公司,明天添加联系人,然后明天编辑公司详细信息等。这些操作是用户随机的...

有很多方法,但是使用 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/

相关文章:

c# - 找不到命名空间名称 'Display' 和 'DisplayAttribute'

c# - 带有自定义异常的 ASP.NET MVC 2 模型错误

asp.net-mvc - 如何将参数传递给 mvc 4 中的局部 View

asp.net-mvc-2 - Html.Action asp.net mvc

ruby-on-rails - 哪个更快?渲染部分或使用 if 语句?

jquery - 使用 MVC 从标准 Html 表单回发部分 View

c# - 反序列化 XML - 值对于无符号字节来说太大或太小

c# - 是否有函数返回 RegEx 匹配开始的索引?

c# - 仅当 DataGridView 中的 Cell ValueChanged 时如何运行 Run CellEndEdit

asp.net-mvc-2 - 如何在 MVC.NET 2 中使用 ReportViewer 2010