This is a simple example of MVC application using FluentValidation.MVC4.
http://fluentvalidation.codeplex.com/
Create a new web application MVC4.
Get the fluent validation using nuget:
Create a validation rule set class:
using FluentValidation; using MvcFluentValidation.Models; namespace MvcFluentValidation.ModelValidators { public class FluentDataModelValidator : AbstractValidator<FluentDataModel> { public FluentDataModelValidator() { RuleFor(x => x.ValString1) .NotNull(); RuleFor(x => x.ValString2) .NotNull() .Length(6, 100); RuleFor(y => y.ValDouble1).InclusiveBetween(40.0, 50.0); RuleFor(customer => customer.ApplicationSubmitted).NotEmpty().When(customer => customer.SelectedApplicationStatus > 0); } } }
Now add the attribute to the model class: FluentDataModel
using System; using System.Web.Mvc; using MvcFluentValidation.ModelValidators; namespace MvcFluentValidation.Models { public class Enums { public enum ApplicationStatus { Pending = 0, Submitted = 1, Disapproved = 2, Approved = 3 } } [FluentValidation.Attributes.Validator(typeof(FluentDataModelValidator))] public class FluentDataModel { public int ValInt1 { get; set; } public int? ValInt2 { get; set; } public string ValString1 { get; set; } public string ValString2 { get; set; } public double ValDouble1 { get; set; } public double? ValDouble2 { get; set; } public DateTime ValDateTime1 { get; set; } public DateTime? ValDateTime2 { get; set; } public SelectList ApplicationStatus { get; set; } public int SelectedApplicationStatus { get; set; } public DateTime? ApplicationSubmitted { get; set; } } }
Add the Provider to the Global.asax file App_Start() method
FluentValidationModelValidatorProvider.Configure();
And the validation works (Note: the dependency validation is only on the server, not as good as a custom RequiredIf validator!):
See https://damienbod.wordpress.com/2013/07/11/simple-mvc-application-using-standard-validation/
You saved me Thank you so much