2014-10-02 78 views
0

我創建UserValidator使用FluentValidation MVC 5FluentValidation MVC必需的外鍵

public class UserValidator : AbstractValidator<UserViewModel> 
{ 
    public UserValidator() 
    { 
     RuleFor(u => u.UserName) 
      .NotEmpty() 
      .Length(1, 50); 
     RuleFor(u => u.Password) 
      .NotEmpty() 
      .Length(6, 20); 
     // How to validate Role must be selected from dropdownlist? 
    } 
} 

UserViewModel 
- UserID - int 
- Username - varchar(50) 
- Password - varchar(20) 
- RoleID - int 

如何創建RuleForRoleID驗證UserViewModel,用戶必須選擇角色之前提交? 如果使用DataAnnotation,我可以簡單地使用[Required]屬性。

+0

RuleFor(X => x.RoleID).NotEqual(0).WithMessage( 「ROLD ID是必需的」); – 2014-10-02 11:27:34

+0

「RoleID」是什麼類型?您可以使用'NotNull'或'NotEmpty' [驗證器](https://fluentvalidation.codeplex.com/wikipage?title=Validators)。 – Zabavsky 2014-10-02 11:27:36

+0

@Zabavsky int,對不起,我忘了添加類型 – Willy 2014-10-02 11:30:37

回答

1

檢查文檔Built in Validators

您可以使用NotEmpty

確保指定屬性不爲null,空字符串或空格(或值類型的默認值,例如0 INT)

RuleFor(u => u.RoleID).NotEmpty() 

或使財產爲空的,並使用NotNull

Ë確保指定的屬性不爲null。

RuleFor(u => u.RoleID).NotNull() 
+0

它與'NotNull()'一起工作,謝謝。 – Willy 2014-10-02 11:39:47