3

所以假设我们有一个域对象,如下所示

public class Person
{
   public string Name { get; set; }
   public IList<PhoneNumber> PhoneNumbers {get; set; }
   public IList<Address> Addresses { get; set; }
}

在输入姓名、电话号码和地址之前,此人无效。你们如何使用 ASP.NET MVC 和表单来处理这个问题......

我在想你可以将 Person 序列化到 session 并有多个视图来编辑 Name、添加电话号码、添加地址 - 控制器操作将修改 session 中的人,最终 Save 操作将推送到数据库。

我真的不喜欢拥有多个视图和使用会话。另一种选择是拥有一个非常复杂的表单,该表单可以具有元素的“动态”部分,用于在发布到保存操作之前在浏览器中添加/删除电话号码、地址。

每个人都在用复杂的对象做什么并通过表单进行编辑?

谢谢!

4

1 回答 1

2

我通常会使用“动态部分”路线。

但是,我不会让您的验证如此严格,以至于用户无法保存正在进行的工作。电话号码、地址等列表可能需要很长时间才能输入。最终用户能够不时保存他们的工作,以防他们失去互联网连接或其他东西,这对最终用户是有益的。如果您的数据输入表单很大,不时通过 AJAX 自动保存记录可能是个好主意。(如 Gmail。)因此,您的模型应该允许他们不时保存未完成的工作,并仅在他们说“完成”时运行整个验证。

于 2009-01-13T21:39:48.167 回答