Asp.net mvc 我应该注释视图模型还是模型?
如果我使用MVVM模式填充视图,即除了模型类之外,我还使用视图模型。模型类不与视图对话;视图模型填充视图 在这种情况下,如果我需要使用数据注释进行验证等,我需要注释视图模型类而不是模型类,对吗 例如,[Required]属性是否应标注在:Asp.net mvc 我应该注释视图模型还是模型?,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,如果我使用MVVM模式填充视图,即除了模型类之外,我还使用视图模型。模型类不与视图对话;视图模型填充视图 在这种情况下,如果我需要使用数据注释进行验证等,我需要注释视图模型类而不是模型类,对吗 例如,[Required]属性是否应标注在: namespace MyApp.ViewModels { public class Category { [Required] [StringLength(50)] public string C
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;
}
}
}
正确,viewmodel不应使用模型(实体),但可以包含模型属性,例如:
//wrong
public class Person{
public string FirstName{get;set;}
public string LatsName{get;set;}
}
public class ViewModel{
public Person Person{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;}
}
这是对viewmodel的更好使用:
public class ViewModel{
public string FirstName{get;set;}
public string LastName{get;set;}
}
是的,您的注释应该在viewmodel上
您也可以在viewmodel中将注释设置为复杂类型,但请注意,复杂类型不应是实体/域类,而应是仅特定于viewmodel的数据模型类,例如:
//wrong
public class Person{
public string FirstName{get;set;}
public string LatsName{get;set;}
}
public class ViewModel{
public Person Person{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;}
}
谢谢你的帮助。我对我的问题含糊其辞表示歉意。我正在重新措辞。