2016-01-18 39 views
0

我使用ValidationContext将验证代码添加到我的对象类中。我添加了以下内容,但没有一个验证属性会触发。到目前为止,我 不知道为什么。任何帮助表示赞赏。asp.net mvc无法使用ValidationContext验证输入DTO对象

public bool Update Book(BookCommand command) 
    { 
     var context = new ValidationContext(command, serviceProvider:null, items: null); 
     var results = new List<ValidationResult>(); 

     var isValid = Validator.TryValidateObject(command, context, results); 


     return UpdateBook(BookTitle , BookCode , AuthorFullName); 
    } 


public class BookCommand : Command, IValidatableObject 
{ 
    [Required] 
    public string BookTitle { get; set; } 
    [Required] 
    public string BookCode { get; set; } 
    [Required] 
    [StringLength(16, MinimumLength = 8, ErrorMessage = "Length must be 8 to 16 characters long")]   
    public string AuthorFullName{ get; set; } 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
     return new List<ValidationResult>(); 
    } 
} 
+0

您已经应用到您的模特属性'([必需]'验证属性,'[StringLength]'等)。你想通过实现'IValidatableObject'来做什么? –

回答

0

如果我记得很清楚,你必须选择的属性或IValidatableObject

删除IValidatableObject接口,它应该做的工作