2009-01-13 89 views
3

所以我们可以说,我们有一个域对象,如下面的ASP.NET MVC - 复杂对象和表单

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

的人是不是有效,直到姓名,电话号码和地址都输入完毕。你怎么处理这个使用ASP.NET MVC和形式...

我在想你可以序列化个人会议,并有多个视图编辑名称,添加电话号码,添加地址 - 控制器操作将修改会话中的人员和最终的保存操作将推送到数据库。

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

大家都在用复杂的对象和通过表单进行编辑?

谢谢!

回答

2

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

但是,我不会让你的验证非常严格,以至于用户无法保存正在进行的工作。电话号码,地址等列表可能需要很长时间才能输入。最终用户能够不时地保存他们的工作以防万一他们失去了互联网连接或什么的情况是有益的。如果您的数据输入格式非常大​​,通过AJAX不时自动保存记录可能是一个好主意。 (就像Gmail一样)。因此,您的模型应该允许他们不时地保存不完整的工作,并且只有在他们说他们“完成”时才运行整个验证。

+0

感谢克雷格,我也很喜欢这个想法。从最终用户的角度来看,我认为动态表单更容易。我的模型绑定器必须更聪明才能处理动态字段,但我认为我们可以使其工作。 – cain 2009-01-13 21:51:49