我有一個model
包含基本信息。然而,我View
需要更多的信息,只是爲了顯示,所以我認爲一個ViewModel
這裏需要顯示額外的信息。但是,如果我在模型中添加Validation attributes
這樣,當我執行Code-First migration
,它會自動創建database
對我來說每列的正確datatype
或者我應該添加Validation attributes
到視圖模型,因爲形式應該validate
所填寫內容?ViewModel或Model中的ASP.NET MVC驗證?
public class Module
{
[Key]
public int id { get; set; }
[Required]
[StringLength(100)]
[Column(TypeName = "varchar")]
[Display(Name="Module Name")]
public string ModuleName { get; set; }
}
public class ModuleViewModel
{
[Key]
public int id { get; set; }
[Required]
[StringLength(30)]
[Column(TypeName="varchar")]
[Display(Name="Module ID")]
public string ModuleID { get; set; }
[Required]
[StringLength(100)]
[Column(TypeName = "varchar")]
[Display(Name="Module Name")]
public string ModuleName { get; set; }
//To populate dropdownlist
public List<SelectListItem> ModuleLevelList { get; set; }
}
在這種情況下,我真的需要ViewModel
嗎?
我想這是這兩個辦法... –
'Module'類是實體類,它沒有任何意義,把驗證到它,你可以使用視圖模型進行驗證和其他的東西,以顯示視圖頁面上,在你需要的話用您的視圖模型類映射您的實體類。 –
請注意,模型 - 視圖 - 控制器標籤用於解決該模式的問題。 ASP.NET-MVC實現有一個特定的標籤。 –