我有一个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实现有一个特定的标签。 –