Asp.net-Mvc-3
FluentValidation 入門問題
我正在嘗試將 FluentValidation 2.0 與 MVC 3 項目一起使用。我已按照此處的說明在項目中安裝 FV。
這是我的驗證器類:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using FluentValidation; namespace HandicapTracker.Models.Validation { public class TournamentValidator : AbstractValidator<Tournament> { public TournamentValidator() { RuleFor(x => x.CourseId).NotEmpty(); RuleFor(x => x.TournamentDate).NotEmpty().NotEqual(new DateTime()); } } }這是我嘗試使用該屬性的地方:
using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; using HandicapTracker.Configuration; using HandicapTracker.Models.Validation; using Omu.ValueInjecter; using FluentValidation; using HandicapTracker.Models.Validation; namespace HandicapTracker.Models { [Validator(typeof(TournamentValidator))] public class Tournament : HandicapTrackerModelBase { private const int VisitingTeamIndex = 0; private const int HomeTeamIndex = 1; public Tournament() : this (new League()) { } .... }但是,無法辨識該屬性。當我建構時,我收到以下錯誤消息:
“System.ComponentModel.DataAnnotations.Validator”不是屬性類。
我實際上已經在兩種不同的解決方案上進行了嘗試,並且在這兩種解決方案上都遇到了同樣的問題。這可能是微不足道的,但我無法弄清楚。
有人可以告訴我我做錯了什麼嗎?
謝謝。
看起來您的
[Validator]屬性正在命名空間中呼叫Validator的另一個類上System.ComponentModel.DataAnnotations。嘗試完全限定屬性。[FluentValidation.Attributes.Validator(typeof(TournamentValidator))]否則,請修改您的 using 語句以避免驗證器名稱衝突。
不要
FluentVallidation直接使用命名空間,它應該從 servicestack 實現。所以你可以把它寫成using Servicestack.FluentValidation;