Rask.Validation.FluentValidation
0.23.1-alpha.0.80
See the version list below for details.
dotnet add package Rask.Validation.FluentValidation --version 0.23.1-alpha.0.80
NuGet\Install-Package Rask.Validation.FluentValidation -Version 0.23.1-alpha.0.80
<PackageReference Include="Rask.Validation.FluentValidation" Version="0.23.1-alpha.0.80" />
<PackageVersion Include="Rask.Validation.FluentValidation" Version="0.23.1-alpha.0.80" />
<PackageReference Include="Rask.Validation.FluentValidation" />
paket add Rask.Validation.FluentValidation --version 0.23.1-alpha.0.80
#r "nuget: Rask.Validation.FluentValidation, 0.23.1-alpha.0.80"
#:package Rask.Validation.FluentValidation@0.23.1-alpha.0.80
#addin nuget:?package=Rask.Validation.FluentValidation&version=0.23.1-alpha.0.80&prerelease
#tool nuget:?package=Rask.Validation.FluentValidation&version=0.23.1-alpha.0.80&prerelease
Rask.Validation.FluentValidation
FluentValidation for Rask forms and requests, in Rask, a full-stack .NET web
framework for teams of any size. Rask.Server and Rask.Wasm reference it for you, so an app has nothing
to add.
- Writing the validator is the registration. A generator finds every
AbstractValidator<T>in the app at compile time, and a form asks for the one that validates its model — nothing to declare in the form, nothing to wire inProgram.cs. - No assembly scan. Registration is emitted as a
[ModuleInitializer], so a WebAssembly app uses FluentValidation and still publishes trimmed. - Async rules work like sync ones. Each validator is wrapped as an
IAsyncFieldValidator, so aMustAsyncuniqueness check runs per field; a validator with constructor dependencies is resolved from the scope. - Per-keystroke validation of a root-model field runs only that property's rules; submit runs every rule.
- A validator in a referenced class library is registered explicitly:
RaskValidators.Register(typeof(Order), _ => new OrderValidator());
Install
dotnet add package Rask.Validation.FluentValidation
Use
public sealed class OrderValidator : AbstractValidator<OrderModel>
{
public OrderValidator()
{
RuleFor(x => x.Product).NotEmpty();
RuleFor(x => x.Quantity).GreaterThanOrEqualTo(1).WithMessage("Quantity must be at least 1.");
}
}
Form.Model(_model).OnSubmit(m => _submission = "Ordered")[
Input.Bind(() => _model.Product),
Validation.Message.Template(errors => Span.Class("error")[errors[0]]).For(() => _model.Product),
Input.Bind(() => _model.Quantity),
Validation.Message.Template(errors => Span.Class("error")[errors[0]]).For(() => _model.Quantity),
Button.Type("submit")["Order"]
]
Depends on FluentValidation 12.x.
Guides: Validation · Forms — validation
| 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. net11.0 is compatible. |
-
net10.0
- FluentValidation (>= 12.1.1)
- Rask (>= 0.23.1-alpha.0.80)
-
net11.0
- FluentValidation (>= 12.1.1)
- Rask (>= 0.23.1-alpha.0.80)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Rask.Validation.FluentValidation:
| Package | Downloads |
|---|---|
|
Rask.Wasm
The Rask browser host: runs a Rask app's C# components client-side on .NET WebAssembly, with the client halves of the batteries — the mediator and query cache, remote dispatch, accounts, validation and the component kit — on by default. Ships the JS boot scripts, the page shell, and the MSBuild integration that stages them into the published bundle — and, opted in, prerenders every route to static HTML with a sitemap.xml at publish, so a static host serves real pages to visitors and crawlers. Depends on Rask, the shared core. |
|
|
Rask.Server
The ASP.NET host for Rask, a full-stack .NET web framework, with every battery: database (SQLite, PostgreSQL or SQL Server, picked by Rask:Database:Provider), mediator and query cache, accounts, background jobs, transactional email, cache, file storage, outbox, operator dashboard, durable logs, Web Push, SQLite snapshots and continuous backup. Renders Rask components with live updates over a WebSocket. RaskApp.Create(args).Run<App>() is the whole Program.cs; app.Configure(c => c.Jobs.Off()) is how an app does without one. Depends on Rask, the shared core. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.23.1-alpha.0.84 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.82 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.81 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.80 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.79 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.78 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.76 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.74 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.72 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.70 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.69 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.68 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.67 | 0 | 9/25/2026 |
| 0.23.1-alpha.0.66 | 23 | 9/24/2026 |
| 0.23.1-alpha.0.65 | 23 | 9/24/2026 |
| 0.23.1-alpha.0.64 | 25 | 9/24/2026 |
| 0.23.1-alpha.0.62 | 30 | 9/24/2026 |
| 0.23.1-alpha.0.61 | 30 | 9/24/2026 |
| 0.23.1-alpha.0.50 | 32 | 9/24/2026 |
| 0.23.0 | 97 | 9/18/2026 |