2009-01-13 121 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