2012-12-12 87 views
0

如果我使用MVVM模式填充我的視圖,即我除了使用模型類外還使用了視圖模型。模範班級不討論這個觀點;視圖模型填充視圖。我應該註釋我的視圖模型還是我的模型?

在這種情況下,如果我需要使用數據註釋進行驗證等,我需要註釋我的視圖模型類而不是我的模型類,對不對?

例如,應在[必需]屬性來對註釋:

namespace MyApp.ViewModels 
{ 
    public class Category 
    { 
     [Required] 
     [StringLength(50)] 
     public string CategoryName { get; set; } 

     [StringLength(255)] 
     [AllowHtml] 
     public string Description { get; set; } 
    } 
} 

還是應該是這樣的:

namespace MyApp.Models 
{ 
    public partial class Category 
    { 
     [Required] 
     public virtual string CategoryName 
     { 
      get; 
      set; 
     } 
    } 
} 

回答

2

正確的,你的視圖模型不應該使用模型(實體),但可以包含模特屬性,例如:

//wrong 
public class Person{ 
    public string FirstName{get;set;} 
    public string LatsName{get;set;} 
} 

public class ViewModel{ 
    public Person Person{get;set;} 
} 

這是一個更好的使用視圖模型的:

public class ViewModel{ 
    public string FirstName{get;set;} 
    public string LastName{get;set;} 
} 

是的,你的註釋應該在視圖模型上。


您可以在視圖模型設置批註複雜類型太多,但請注意,複雜類型不應該是一個實體/域類,但僅針對視圖模型,例如一個數據模型類:

public class InsertPerson{ 
    [Required] 
    public string FirstName{get;set;} 
} 

public class EditPerson{ 
    [Required] 
    public string Id{get;set;} 

    [Required] 
    public string FirstName{get;set;} 
} 

public class ViewModel{ 
    public InsertPerson insertPerson{get;set;} 
} 
+0

謝謝你的幫助。對於我的問題的模糊表達,我表示抱歉。我正在改寫它。 –

相關問題