2010-11-25 21 views
1

我有關於視圖模型內屬性重複的問題。 對於我的搜索查看我有一個視圖模型,看起來像這樣有關在ViewModels中複製屬性的問題

public class SearchModel 
{ 
    public IEnumerable<SelectListItem> Genders {get;set;} 
    ... other select lists 
    // Worker Details 
    public string FirstName {get;set;} 
    public string LastName {get;set;} 
    public DateTime Birthdate {get;set;} 
    public int Phone {get;set;}et 
    public string Gender {get; set;} 

    //Address Details 
    public string Street {get;set;} 
    public string City {get;set;} 
    public string Zip {get; set;} 


} 

對於我輸入視圖我有以下視圖模型

public IEnumerable<SelectListItem> Genders {get;set;} 
    public IEnumerable<SelectListItem> Directions {get;set;} 
    ... other select lists 
    // Worker Details 
    public string FirstName {get;set;} 
    public string LastName {get;set;} 
    public DateTime Birthdate {get;set;} 
    public int Phone {get;set;}et 
    public string Gender {get; set;} 

    public string SSN {get; set;} 
    public string DL {get;set;} 

    //Address Details 
    public int Number {get;set;} 
    public string Direction {get;set;} 
    public string Suffix {get;set;} 
    ..... 

    public string Street {get;set;} 
    public string City {get;set;} 
    public string Zip {get; set;} 
} 

列表顯示模式

public class ListDisplayModel 
{ 
    public IEnumerable<Worker> Workers {get;set;} 

    internal class Worker 
    { 
     public string FirstName {get;set;} 
     public string LastName {get;set;} 
     public DateTime Birthdate {get;set;} 
     public int Phone {get;set;}et 
     public string Gender {get; set;} 

     public string SSN {get; set;} 
     public string DL {get;set;} 

     //Address Details 
     public int Number {get;set;} 
     public string Direction {get;set;} 
     public string Suffix {get;set;} 
     public string Street {get;set;} 
     public string City {get;set;} 
     public string Zip {get; set;} 
    } 
} 

我覺得我複製了很多屬性。 我在想,如果這樣做對我來說很理想,然後像DTO類一樣創建一個名爲worker的類,並將它放在這些視圖模型類中的每一箇中,還是有更好的方法來做這樣的事情?

感謝

回答

2

我會在每個視圖模型的WorkerViewModel去喜歡你的建議,以提高代碼和減少重複。

+0

同意,使用DTO在這裏非常有意義。 – 2010-11-25 20:11:47

1

絕對地創建一個工作者類並將這些屬性放置在對象中。