2012-01-15 36 views
1

我正在尋找一種好方法來管理我的視圖模型,特別是這些視圖模型中使用的類。我在下面舉一個例子來解釋:建築視圖中使用的模型和類

假設我想顯示一個視圖,其中包含一個項目(標題,內容,類別...),並在其下面列出一些相關項目(同一類別) 。我爲這個視圖創建了一個視圖模型。這裏是:

public class ProjectDetailsViewModel 
{ 
    public ProjectFullViewModel OneProject { get; set; } 

    public IEnumerable<ProjectLightViewModel> RelatedProjects { get; set; } 

    // Below are the classes used in this view model 
    public class ProjectFullViewModel 
    { 
     public int ProjectID { get; set; } 
     public string Title { get; set; } 
     public string Slug { get; set; } 
     public string Category { get; set; } 
     public string Client { get; set; } 
     public int Year { get; set; } 

     public IEnumerable<Technology> Technologies { get; set; } 

     public byte[] ScreenshotData { get; set; } 
     public string ScreenshotName { get; set; } 
     public int ScreenshotLength { get; set; } 
     public string ScreenshotType { get; set; } 

     public byte[] BackgroundData { get; set; } 
     public string BackgroundName { get; set; } 
     public int BackgroundLength { get; set; } 
     public string BackgroundType { get; set; } 
    } 

    public class ProjectLightViewModel 
    { 
     public int ProjectID { get; set; } 
     public string Title { get; set; } 
     public string Slug { get; set; } 
     public string Category { get; set; } 
     public string Client { get; set; } 
     public string Year { get; set; } 
    } 
} 

正如你所看到的,在這個視圖模型中使用的所有類都包含在其中。我認爲這樣可以更容易地觀察使用的內容。你怎麼看?這是一種好的/不好的做法?一些建議?我注意到,當我們有很多視圖模型和類使用時,我們可能會有點困惑。不要怪我,我還在學習ASP.NET MVC,我想做出不錯的選擇...

謝謝。

回答

0

我不會使用視圖模型的嵌套類。爲了引用它們,你必須總是指定基類。在編寫域模型和視圖模型之間的映射時,這可能會特別惱人。如果您害怕有許多文件包含您的視圖模型,您仍然可以將所有相關視圖模型放置在與父模型相同的.cs文件中。

0

這是很好的做法。使用視圖模型可以讓您向視圖傳遞或從視圖中檢索必要的數據。這正是讓他們觀看模型的原因。專門爲View設計的類。

至於「太多」或混淆的擔憂,這只是歸結於您的項目/解決方案組織。有足夠的邏輯分離,這樣就可以明顯看出你所有的課程在哪裏生活。

相關問題