实例介绍
【实例简介】
FluentValidation是一个流行的.NET验证库,用于构建强类型的验证规则。尽管FluentValidation.AspNetCore包不再被维护,但我们可以通过手动验证方法将核心FluentValidation包与ASP.NET Core集成。
本文将引导你了解如何在ASP.NET Core项目中使用FluentValidation进行数据验证。首先,我们需要安装FluentValidation.AspNetCore NuGet包。然后,通过定义验证规则类(如PersonValidator)来创建验证规则。例如:
【实例截图】
【核心代码】
文件清单
└── FluentValidation.AspNetCore-347b0535e5fe93bdc39ca031b3f971e0af1619b4
├── after.FluentValidation.AspNetCore.sln.targets
├── Build.cmd
├── build.ps1
├── build.sh
├── FluentValidation.AspNetCore.sln
├── global.json
├── License.txt
├── logo
│ └── fluent-validation-icon.png
├── nuget.config
└── src
├── FluentValidation.AspNetCore
│ ├── Adapters
│ │ ├── ClientValidatorBase.cs
│ │ ├── CreditCardClientValidator.cs
│ │ ├── EmailClientValidator.cs
│ │ ├── EqualToClientValidator.cs
│ │ ├── MaxLengthClientValidator.cs
│ │ ├── MinLengthClientValidator.cs
│ │ ├── RangeClientValidator.cs
│ │ ├── RangeMaxClientValidator.cs
│ │ ├── RangeMinClientValidator.cs
│ │ ├── RegexClientValidator.cs
│ │ ├── RequiredClientValidator.cs
│ │ └── StringLengthClientValidator.cs
│ ├── AssemblyInfo.cs
│ ├── CustomizeValidatorAttribute.cs
│ ├── FluentValidation.AspNetCore.csproj
│ ├── FluentValidation.AspNetCore.csproj.DotSettings
│ ├── FluentValidationBindingMetadataProvider.cs
│ ├── FluentValidationClientModelValidatorProvider.cs
│ ├── FluentValidationModelValidatorProvider.cs
│ ├── FluentValidationMvcConfiguration.cs
│ ├── FluentValidationMvcExtensions.cs
│ ├── FluentValidationObjectModelValidator.cs
│ ├── FluentValidationVisitor.cs
│ ├── IValidatorInterceptor.cs
│ ├── MvcValidationHelper.cs
│ ├── README.md
│ ├── RuleSetForClientSideMessagesAttribute.cs
│ ├── ValidationResultExtensions.cs
│ └── ValidatorDescriptorCache.cs
├── FluentValidation-Release.snk
└── FluentValidation.Tests.AspNetCore
├── ClientsideMessageTester.cs
├── Controllers
│ ├── ApiTestController.cs
│ ├── ClientsideController.cs
│ ├── HomeController.cs
│ └── TestController.cs
├── CultureScope.cs
├── DependencyInjectionTests.cs
├── DisableAutoValidationTests.cs
├── DisableDataAnnotationsTests.cs
├── ExtensionTests.cs
├── FluentValidationModelValidatorFilterIntegrationTests.cs
├── FluentValidation.Tests.AspNetCore.csproj
├── GlobalInterceptorTests.cs
├── HttpClientExtensions.cs
├── ImplicitRootCollectionTests.cs
├── ImplicitValidationTests.cs
├── MvcIntegrationTests.cs
├── Pages
│ ├── Rulesets
│ │ ├── DefaultAndSpecifiedRuleSet.cshtml
│ │ ├── DefaultRuleSet.cshtml
│ │ ├── MultipleRuleSets.cshtml
│ │ ├── RuleSetForHandlers.cshtml
│ │ └── SpecifiedRuleSet.cshtml
│ ├── RulesetTest.cshtml
│ ├── TestPage1.cshtml
│ ├── TestPageWithPrefix.cshtml
│ └── _ViewImports.cshtml
├── RazorPagesTests.cs
├── ServiceCollectionExtensionTests.cs
├── ServiceProviderTests.cs
├── Startup.cs
├── TestExtensions.cs
├── TestMessages.Designer.cs
├── TestMessages.resx
├── TestModels_ClientSIde.cs
├── TestModels.cs
├── TestPageModel.cs
├── TypeFilterTests.cs
├── Views
│ ├── Clientside
│ │ ├── Inputs.cshtml
│ │ ├── RuleSet.cshtml
│ │ └── _TestPartial.cshtml
│ └── _ViewImports.cshtml
├── WebAppFixture.cs
└── xunit.runner.json
11 directories, 82 files
FluentValidation是一个流行的.NET验证库,用于构建强类型的验证规则。尽管FluentValidation.AspNetCore包不再被维护,但我们可以通过手动验证方法将核心FluentValidation包与ASP.NET Core集成。
本文将引导你了解如何在ASP.NET Core项目中使用FluentValidation进行数据验证。首先,我们需要安装FluentValidation.AspNetCore NuGet包。然后,通过定义验证规则类(如PersonValidator)来创建验证规则。例如:
public class PersonValidator : AbstractValidator<Person> { public PersonValidator() { RuleFor(x => x.Id).NotNull(); RuleFor(x => x.Name).Length(0, 10); RuleFor(x => x.Email).EmailAddress(); RuleFor(x => x.Age).InclusiveBetween(18, 60); } }接下来,在Startup.cs中配置服务,注册验证器:
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddScoped<IValidator<Person>, PersonValidator>(); }对于自动验证,需要在Startup.cs中添加额外的配置以启用FluentValidation的自动验证特性。但请注意,自动验证功能仅限于MVC控制器和Razor页面。
【实例截图】
【核心代码】
文件清单
└── FluentValidation.AspNetCore-347b0535e5fe93bdc39ca031b3f971e0af1619b4
├── after.FluentValidation.AspNetCore.sln.targets
├── Build.cmd
├── build.ps1
├── build.sh
├── FluentValidation.AspNetCore.sln
├── global.json
├── License.txt
├── logo
│ └── fluent-validation-icon.png
├── nuget.config
└── src
├── FluentValidation.AspNetCore
│ ├── Adapters
│ │ ├── ClientValidatorBase.cs
│ │ ├── CreditCardClientValidator.cs
│ │ ├── EmailClientValidator.cs
│ │ ├── EqualToClientValidator.cs
│ │ ├── MaxLengthClientValidator.cs
│ │ ├── MinLengthClientValidator.cs
│ │ ├── RangeClientValidator.cs
│ │ ├── RangeMaxClientValidator.cs
│ │ ├── RangeMinClientValidator.cs
│ │ ├── RegexClientValidator.cs
│ │ ├── RequiredClientValidator.cs
│ │ └── StringLengthClientValidator.cs
│ ├── AssemblyInfo.cs
│ ├── CustomizeValidatorAttribute.cs
│ ├── FluentValidation.AspNetCore.csproj
│ ├── FluentValidation.AspNetCore.csproj.DotSettings
│ ├── FluentValidationBindingMetadataProvider.cs
│ ├── FluentValidationClientModelValidatorProvider.cs
│ ├── FluentValidationModelValidatorProvider.cs
│ ├── FluentValidationMvcConfiguration.cs
│ ├── FluentValidationMvcExtensions.cs
│ ├── FluentValidationObjectModelValidator.cs
│ ├── FluentValidationVisitor.cs
│ ├── IValidatorInterceptor.cs
│ ├── MvcValidationHelper.cs
│ ├── README.md
│ ├── RuleSetForClientSideMessagesAttribute.cs
│ ├── ValidationResultExtensions.cs
│ └── ValidatorDescriptorCache.cs
├── FluentValidation-Release.snk
└── FluentValidation.Tests.AspNetCore
├── ClientsideMessageTester.cs
├── Controllers
│ ├── ApiTestController.cs
│ ├── ClientsideController.cs
│ ├── HomeController.cs
│ └── TestController.cs
├── CultureScope.cs
├── DependencyInjectionTests.cs
├── DisableAutoValidationTests.cs
├── DisableDataAnnotationsTests.cs
├── ExtensionTests.cs
├── FluentValidationModelValidatorFilterIntegrationTests.cs
├── FluentValidation.Tests.AspNetCore.csproj
├── GlobalInterceptorTests.cs
├── HttpClientExtensions.cs
├── ImplicitRootCollectionTests.cs
├── ImplicitValidationTests.cs
├── MvcIntegrationTests.cs
├── Pages
│ ├── Rulesets
│ │ ├── DefaultAndSpecifiedRuleSet.cshtml
│ │ ├── DefaultRuleSet.cshtml
│ │ ├── MultipleRuleSets.cshtml
│ │ ├── RuleSetForHandlers.cshtml
│ │ └── SpecifiedRuleSet.cshtml
│ ├── RulesetTest.cshtml
│ ├── TestPage1.cshtml
│ ├── TestPageWithPrefix.cshtml
│ └── _ViewImports.cshtml
├── RazorPagesTests.cs
├── ServiceCollectionExtensionTests.cs
├── ServiceProviderTests.cs
├── Startup.cs
├── TestExtensions.cs
├── TestMessages.Designer.cs
├── TestMessages.resx
├── TestModels_ClientSIde.cs
├── TestModels.cs
├── TestPageModel.cs
├── TypeFilterTests.cs
├── Views
│ ├── Clientside
│ │ ├── Inputs.cshtml
│ │ ├── RuleSet.cshtml
│ │ └── _TestPartial.cshtml
│ └── _ViewImports.cshtml
├── WebAppFixture.cs
└── xunit.runner.json
11 directories, 82 files
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论