Finbuckle.Html5Validation
10.0.0
Prefix Reserved
dotnet add package Finbuckle.Html5Validation --version 10.0.0
NuGet\Install-Package Finbuckle.Html5Validation -Version 10.0.0
<PackageReference Include="Finbuckle.Html5Validation" Version="10.0.0" />
<PackageVersion Include="Finbuckle.Html5Validation" Version="10.0.0" />
<PackageReference Include="Finbuckle.Html5Validation" />
paket add Finbuckle.Html5Validation --version 10.0.0
#r "nuget: Finbuckle.Html5Validation, 10.0.0"
#:package Finbuckle.Html5Validation@10.0.0
#addin nuget:?package=Finbuckle.Html5Validation&version=10.0.0
#tool nuget:?package=Finbuckle.Html5Validation&version=10.0.0
Finbuckle.Html5Validation
- Introduction
- What's New in v<span class="_version">10.0.0</span>
- Installation
- Supported Data Annotations
- FAQ
- License
Introduction
Client side form validation in ASP.NET Core stinks.
Specifically, tag helpers and HTMLHelper methods
generate non-standard validation attributes
and require the use of the jquery.validate and jquery.validate.unobtrusive libraries.
This library overrides this behavior to generate standard HTML5 validation attributes.
<a name="whats-new"></a> What's New in v<span class="_version">10.0.0</span>
This section only lists release update details specific to v<span class="_version">10.0.0</span>. See the changelog file for all release update details.
⚠ BREAKING CHANGES
- The library now targets net10.0 only. .NET 8 and .NET 9 are no longer supported.
Features
- Add title attribute containing error message to validated inputs (#3) (b285611)
- drop .NET 8 and .NET 9 support, target .NET 10 only (#9) (14580d1)
- Update to .NET 10 (13d0ce8)
Installation
Add the
Finbuckle.Html5ValidationNuGet package to your project.Add the
Html5Validationservice to your app:
using Finbuckle.Html5Validation;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddHtml5Validation();
// Rest of app code omitted.
Supported Data Annotations
The following data annotations are supported:
| Attribute | ASP.NET Core | Finbuckle.Html5Validation |
|---|---|---|
[Required] |
- data-val=true<br> - data-val-required="{message}" |
- required<br> - title="{message}" † |
[MinLength] |
- minlength="{min}"<br> - data-val=true<br> - data-val-minlength="{message}" <br>- data-val-maxlength-min="{min}" |
- minlength="{min}"<br> - title="{message}" † |
[MaxLength] |
- maxlength="{max}"<br> - data-val=true<br> - data-val-maxlength="{message}" <br>- data-val-maxlength-max="{max}" |
- maxlength="{max}"<br> - title="{message}" † |
[StringLength] |
- minlength="{min}"<br> - maxlength="{max}"<br> - data-val=true<br> - data-val-maxlength="{message}" <br>- data-val-maxlength-max="{max}" <br> - data-val-minlength="{message}" <br> - data-val-maxlength-min="{min}" |
- minlength="{min}"<br> - maxlength="{max}"<br> - title="{message}" † |
[Range] |
- data-val=true<br> - data-val-range="{message}"<br> - data-val-range-min="{min}" <br>- data-val-range-max="{max}" |
- min="{min}"<br> - max="{max}"<br> - title="{message}" † |
[RegularExpression] |
- data-val=true<br> - data-val-regex="{message}"<br> - data-val-regex-pattern="{regex}" |
- pattern="{regex}"<br> - title="{message}" † |
[DataType(DataType.{type}] |
- type="{type}"<br> - data-val=true<br> - data-val-{type}="{message}" |
- type="{type}"<br> - title="{message}" † |
[EmailAddress] |
- type="email"<br> - data-val=true<br> - data-val-email="{message}" |
- type="email"<br> - title="{message}" † |
[Phone] |
- type="tel"<br> - data-val=true<br> - data-val-phone="{message}" |
- type="tel"<br> - title="{message}" † |
[Url] |
- type="url"<br> - data-val=true<br> - data-val-url="{message}" |
- type="url"<br> - title="{message}" † |
Note that
[DataType(DataType.{type})]only supports simple types such as email, phone, and url.
† The
titleattribute is only added when a customErrorMessageorErrorMessageResourceNameis explicitly set on the annotation, e.g.[Required(ErrorMessage = "This field is required.")]. Browsers display thetitlevalue as a tooltip on the input and in the built-in validation popover, giving users a clear, customized error message.
Installation
Add the
Finbuckle.Html5ValidationNuGet package to your project.In your app configuration add the
Html5Validationservice:
using Finbuckle.Html5Validation;
var builder = WebApplication.CreateBuilder(args);
// ... Add normal services.
// Add Finbuclke.Html5Validation.
builder.Services.AddHtml5Validation();
// ... rest of file omitted.
FAQ
Why not just use the
jquery.validateandjquery.validate.unobtrusivelibraries?These libraries are not standard HTML5 validation attributes and require additional JavaScript libraries to work. This library generates standard HTML5 validation attributes that work out of the box with modern browsers.
Does it have any imapct on server side validation?
No, this library only affects client-side validation.
Does this library work with Blazor?
No, this library only works with ASP.NET Core MVC Razor Pages and MVC apps that use tag helpers and
HTMLHelperform input methods.
License
This project is licensed under the MIT License. See LICENSE file for license information.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.