我已經使用最新版本的Fluent Validation 5.4.0.0;我需要達到的是:流暢驗證的鏈接規則
考慮汽車VIN,這取決於品牌ID,型號ID和製造年份。在流利中我是否有能力在這些規則成功執行時根據更多規則執行規則?
如果所有三條規則(品牌,型號和年份)都通過,我必須驗證車輛vin。
我也讀過整個文檔,找不到任何實施它的參考。
class VehicleValidator : AbstractValidator<Vehicle>
{
public VehicleValidator()
{
RuleFor(v => v.MakeId)
.NotEmpty()
.WithMessage("Make Id is required")
RuleFor(v => v.ModelId)
.NotEmpty()
.WithMessage("Model Id is required")
RuleFor(v => v.Year)
.NotEqual(default(ushort))
.WithMessage("Year is required")
RuleFor(v => v)
.MustBeAValidVehicle()
.WithName("Vehicle")
.Unless(v => v.IdMarca == null || v.IdModelo == null && v.Ano == default(short));
RuleFor(v => v.VehicleVin)
.NotEmpty()
.WithMessage("Vehicle Vin is required")
//Only run this validation if the validation of MakeId, ModelId, Year and MustBeAValidVechile don't fail
RuleFor(v => v.VehicleVin)
.MustBeAValidVehicleVin()
.Unless(v => v.Chassi == null || v.IdMarca == null || v.IdModelo == null || v.Ano == default(ushort));
}
}
你可以在你的類,如果你想定製它的驗證規則實現AbstractValidator覆蓋驗證,但什麼是你想達到什麼目的?爲什麼你會希望驗證是有條件的,由其他驗證的結果決定,只是每次驗證一切。 –
2014-10-16 12:55:07
@BenRobinson因爲沒有意義,我向用戶顯示一個消息,說「車輛無效」。當我需要提醒用戶時,在驗證它之前有一個無效的品牌,型號或年份。 – Gandarez 2014-10-16 12:58:53