我遇到了FluentValidation的Must方法問題。我有這個規則我的視圖模型:FluentValidation自定義驗證問題
RuleFor(v => v.StateCd).Must(stateCd => BeAValidStateCode(stateCd)).WithMessage("Please enter a valid, 2 character state code.")
.NotEmpty().WithMessage("State is required.")
.Length(2).WithMessage("State should be 2 characters.");
的驗證方法是在視圖模型:
private bool BeAValidStateCode(string stateCode)
{
string states = "|AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|";
return stateCode.Length == 2 && states.IndexOf("|" + stateCode + "|") >= 0;
}
我想確保用戶進入狀態代碼是兩個字符,並且包含在這個字符串。我已經測試了驗證方法並知道它的工作原理,但它驗證了諸如「aa」,「jj」等輸入。我是否正確使用Must規則?
任何幫助表示讚賞。
更新:由於張貼這我已經嘗試過其他一些事情,包括剛纔具有BeAValidStateCode方法返回false,它仍然驗證了什麼,我把
您是否在控制器操作中對ModelState.IsValid執行檢查? –
是的,但我正在嘗試使用它進行客戶端驗證。 – JB06