Blazor.FluentValidation
1.0.0
dotnet add package Blazor.FluentValidation --version 1.0.0
NuGet\Install-Package Blazor.FluentValidation -Version 1.0.0
<PackageReference Include="Blazor.FluentValidation" Version="1.0.0" />
<PackageVersion Include="Blazor.FluentValidation" Version="1.0.0" />
<PackageReference Include="Blazor.FluentValidation" />
paket add Blazor.FluentValidation --version 1.0.0
#r "nuget: Blazor.FluentValidation, 1.0.0"
#:package Blazor.FluentValidation@1.0.0
#addin nuget:?package=Blazor.FluentValidation&version=1.0.0
#tool nuget:?package=Blazor.FluentValidation&version=1.0.0
Blazor.FluentValidation
๐ Integrasi otomatis FluentValidation ke dalam <EditForm>
Blazor.
โจ Kompatibel dengan .NET 8+, mendukung nested validation, DI, dan validasi per field secara real-time!
๐งฉ Fitur Utama
- ๐ Integrasi langsung ke
<EditForm>
โ tanpa konfigurasi kompleks - ๐ Support
ValidatorType
via Dependency Injection (DI) - ๐ ๏ธ Support
ValidatorInstance
tanpa DI (manual) - ๐ง Validasi properti nested seperti
Address.City
otomatis tampil - โก Validasi real-time saat field diubah (
OnFieldChanged
) - ๐ Kompatibel dengan
[SupplyParameterFromForm]
(.NET 8+ Interactive Rendering)
๐ฆ Instalasi
dotnet add package Blazor.FluentValidation
๐ง Registrasi DI (jika pakai ValidatorType)
using FluentValidation;
builder.Services.AddValidatorsFromAssemblyContaining<PersonValidator>();
// atau untuk banyak assembly
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
builder.Services.AddValidatorsFromAssemblies(assemblies, includeInternalTypes: true);
โ Contoh Penggunaan
๐งท Mode 1: ValidatorType (dari DI)
<EditForm Model="@person" OnValidSubmit="@HandleSubmit" FormName="formA">
<FluentValidationExtension ValidatorType="typeof(PersonValidator)" />
<InputText @bind-Value="person.Name" />
<ValidationMessage For="@(() => person.Name)" />
</EditForm>
โ๏ธ Mode 2: ValidatorInstance (manual)
<EditForm Model="@person" OnValidSubmit="@HandleSubmit" FormName="formB">
<FluentValidationExtension ValidatorInstance="new PersonValidator()" />
<InputText @bind-Value="person.Name" />
<ValidationMessage For="@(() => person.Name)" />
</EditForm>
๐ช Contoh Nested Validation (Parent-Child)
๐น Model
public class Person
{
public string Name { get; set; } = string.Empty;
public Address Address { get; set; } = new();
}
public class Address
{
public string Street { get; set; } = string.Empty;
public string City { get; set; } = string.Empty;
}
๐น Validator
public class PersonValidator : AbstractValidator<Person>
{
public PersonValidator()
{
RuleFor(p => p.Name).NotEmpty().WithMessage("Nama wajib diisi.");
RuleFor(p => p.Address).SetValidator(new AddressValidator());
}
}
public class AddressValidator : AbstractValidator<Address>
{
public AddressValidator()
{
RuleFor(a => a.Street).NotEmpty().WithMessage("Jalan wajib diisi.");
RuleFor(a => a.City).NotEmpty().WithMessage("Kota wajib diisi.");
}
}
๐น Razor Form
<EditForm Model="@person" OnValidSubmit="@HandleSubmit" FormName="nestedForm">
<FluentValidationExtension ValidatorType="typeof(PersonValidator)" />
<InputText @bind-Value="person.Name" />
<ValidationMessage For="@(() => person.Name)" />
<InputText @bind-Value="person.Address.Street" />
<ValidationMessage For="@(() => person.Address.Street)" />
<InputText @bind-Value="person.Address.City" />
<ValidationMessage For="@(() => person.Address.City)" />
</EditForm>
โ ๏ธ Penting untuk .NET 8+
Jika Anda menggunakan [SupplyParameterFromForm], pastikan menyertakan FormName:
<EditForm FormName="uniqueFormName" ... />
Tanpa FormName, Blazor akan menampilkan error seperti:
The POST request does not specify which form is being submitted.
๐ฌ Kontribusi & Dukungan
Kontribusi terbuka! Silakan laporkan issue, ajukan fitur, atau buat pull request di:
๐ https://github.com/ganiputras/Blazor.FluentValidation
โ๏ธ Lisensi
Blazor.FluentValidation dirilis di bawah MIT License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net8.0
- FluentValidation.DependencyInjectionExtensions (>= 12.0.0)
- Microsoft.AspNetCore.Components.Web (>= 8.0.18)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 94 | 7/30/2025 |
Blazor.FluentValidation v1.0.0
โ
Fitur:
- Integrasi otomatis FluentValidation dalam Blazor `EditForm`.
- Mendukung penggunaan `ValidatorType` dari DI dan `ValidatorInstance` secara manual.
- Kompatibel dengan validasi built-in Blazor.
- Dukungan validasi real-time melalui `OnFieldChanged`.
📚 Dokumentasi:
🔗 https://github.com/ganiputras/Blazor.FluentValidation