Formaze.Blazor.MudBlazor
1.3.2
See the version list below for details.
dotnet add package Formaze.Blazor.MudBlazor --version 1.3.2
NuGet\Install-Package Formaze.Blazor.MudBlazor -Version 1.3.2
<PackageReference Include="Formaze.Blazor.MudBlazor" Version="1.3.2" />
<PackageVersion Include="Formaze.Blazor.MudBlazor" Version="1.3.2" />
<PackageReference Include="Formaze.Blazor.MudBlazor" />
paket add Formaze.Blazor.MudBlazor --version 1.3.2
#r "nuget: Formaze.Blazor.MudBlazor, 1.3.2"
#:package Formaze.Blazor.MudBlazor@1.3.2
#addin nuget:?package=Formaze.Blazor.MudBlazor&version=1.3.2
#tool nuget:?package=Formaze.Blazor.MudBlazor&version=1.3.2
Formaze.Blazor.MudBlazor
Zero form markup. Developers install, admins design.
Formaze is an embedded no-code form builder for Blazor apps. Add one component — your team configures the form live, without code changes or redeployments.
Define a C# model, drop one component, and let your admins design the form live — drag & drop fields, group them, set labels, all without a redeploy. Try the live demo →
What's new in v1.3.2
Bug-fix release. bool? properties no longer throw, DateTime time pickers no longer disappear from saved forms on reload, JSON export needs no script of your own, unsupported members are skipped instead of rendered as a crashing text box, validation follows a replaced Model, and numbers parse correctly in comma-decimal cultures. AddFormazeInMemory() now registers a singleton store shared by all users.
What's new in v1.3.0
- 9 new field types — phone, slider, searchable autocomplete, file upload (with an
OnFileUploadstreaming handler), password, radio group, rating, multi-select (List<enum>) and tags (List<string>) - Redesigned field editor — General/Options/Validation/Logic tabs with a live, interactive preview you can type into; validation is enforced in the preview so you can test it without leaving the editor
- Multi-step (wizard) forms — turn sections into steps with progress, Back/Next and per-step validation, in one toggle
- Repeating sections — a
List<T>of your own class renders as a repeatable sub-form (Add/Remove rows) - Section settings & layout — per-section description, conditional section visibility, and full-width / multi-column field widths
- Richer validation — operators, AND/OR and conditional-required, plus cross-field comparison (e.g. end date after start date)
- Localization — English, French, Spanish and German out of the box (all four cover the whole editor), with English fallback
What's new in v1.2.0
- Free tier is now unlimited on forms — the previous 3-form cap is gone; the "Powered by Formaze" watermark stays as the Free-tier marker
- JSON config import/export is now Pro — the editor's import/export buttons are reserved for Pro and Enterprise licenses
What's new in v1.1.0
- EF Core store — new companion package
Formaze.Blazor.MudBlazor.EFCorepersists form configs in any EF Core database (SQL Server, PostgreSQL, SQLite…) - Conditional fields — show a field only when another equals a given value, configured live in the editor
- Custom field renderers — override rendering for any field via the
CustomFieldRendererparameter, with automatic fallback - JSON export / import in the editor toolbar
- Automated test suite — components, stores, sync and licensing (bUnit + xUnit)
How it works
- Developer installs the package and drops
<FormazeComponent>on a page - Admin configures the form layout in the live UI — no redeploy needed
- Users fill in and submit the form
Installation
dotnet add package Formaze.Blazor.MudBlazor
Requires MudBlazor already set up in your project. Targets .NET 8, 9, and 10.
Quick start
1. Register services in Program.cs (MudBlazor must already be registered):
builder.Services.AddMudServices();
builder.Services.AddFormazeJson(options =>
{
options.LicenseKey = "YOUR_LICENSE_KEY"; // omit for the Free tier
});
2. Add the component to any Blazor page. Key and Model are required; set EditMode to true for admins to configure the form live:
<FormazeComponent T="ContactForm"
Key="contact"
Model="_model"
EditMode="_isAdmin"
OnValidSubmit="HandleSubmit" />
@code {
private ContactForm _model = new();
private bool _isAdmin = true;
private void HandleSubmit()
{
// _model now holds the validated values
Console.WriteLine($"{_model.Name} <{_model.Email}>");
}
}
3. Define your model:
public class ContactForm
{
[Display(Name = "Full name")]
[Required]
public string Name { get; set; } = "";
[Display(Name = "Email")]
[Required, EmailAddress]
public string Email { get; set; } = "";
[Display(Name = "Message")]
[DataType(DataType.MultilineText)]
public string Message { get; set; } = "";
}
Formaze reads the model and generates the form automatically. No Razor, no HTML, no boilerplate.
Supported field types
| C# type | Rendered as |
|---|---|
string |
Text input |
string + [EmailAddress] / [Url] / [Phone] |
Email / URL / phone input |
string + [DataType(MultilineText)] |
Textarea |
string + [DataType(Password)] |
Masked input |
string + [DataType(Upload)], or byte[] |
File upload (optional OnFileUpload streaming handler) |
int, long, short, byte, decimal, double, float… |
Numeric input |
numeric + [FormazeSlider] |
Slider |
int + [FormazeRating] |
Star rating |
bool |
Checkbox |
DateTime, DateTimeOffset |
Date picker + time picker |
DateOnly |
Date picker |
TimeSpan, TimeOnly |
Time picker |
enum |
Dropdown (or autocomplete with [FormazeSearchable], or radio buttons, toggled in the editor) |
List<enum> |
Multi-select |
List<string> |
Tag input |
List<T> (your own class) |
Repeating section (Add / Remove rows) |
| Nullable variants | Same, nullable |
[FormazeIgnore] |
Property is skipped |
Properties Formaze cannot bind (nested objects, arrays, dictionaries, get-only or private-setter properties, indexers, Guid) are skipped automatically. Group fields into sections with [Display(GroupName = "...")].
Admin features
When EditMode is enabled, admins can configure the form live:
- Add / remove fields from the model
- Reorder fields via drag & drop
- Group fields into labeled sections
- Configure each field — label, placeholder, required, min/max, format…
- Changes are saved automatically on exit from edit mode
Store options
Choose where form configurations are persisted:
// JSON files on disk (default)
builder.Services.AddFormazeJson();
// In-memory (prototyping / tests only — lost on restart; one shared store for all users)
builder.Services.AddFormazeInMemory();
// Custom store (Redis, Azure Blob, your own IFormazeStore)
builder.Services.AddFormaze<MyCustomStore>();
// EF Core — any database (SQL Server, PostgreSQL, SQLite…)
// requires the companion package: Formaze.Blazor.MudBlazor.EFCore
builder.Services.AddFormazeEfCore<MyDbContext>();
Licensing
| Tier | Price | Limits |
|---|---|---|
| Free | 0€ | Unlimited forms, Formaze watermark |
| Pro | 490€ / app / year | No watermark, JSON config import/export, email support |
| Enterprise | Custom | Multiple apps, dedicated support |
Get a license → formaze.dev/checkout
Requirements
- .NET 8, 9, or 10
- Blazor Server or WebAssembly (interactive render mode)
- MudBlazor 9.x
Links
| 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 is compatible. 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 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. |
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Formaze.Blazor.MudBlazor:
| Package | Downloads |
|---|---|
|
Formaze.Blazor.MudBlazor.EFCore
Entity Framework Core store adapter for Formaze. Persists form configurations in any EF Core-compatible database (SQL Server, PostgreSQL, SQLite, etc.). |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.9 | 121 | 9/15/2026 |
| 1.3.8 | 102 | 9/15/2026 |
| 1.3.7 | 106 | 9/14/2026 |
| 1.3.6 | 109 | 9/14/2026 |
| 1.3.5 | 113 | 9/14/2026 |
| 1.3.4 | 107 | 9/14/2026 |
| 1.3.3 | 108 | 9/13/2026 |
| 1.3.2 | 114 | 9/13/2026 |
| 1.3.1 | 160 | 6/6/2026 |
| 1.3.0 | 145 | 6/6/2026 |
| 1.2.3 | 126 | 5/31/2026 |
| 1.2.2 | 124 | 5/29/2026 |
| 1.2.1 | 115 | 5/29/2026 |
| 1.2.0 | 146 | 5/29/2026 |
| 1.1.0 | 144 | 5/29/2026 |
| 1.0.0 | 119 | 5/4/2026 |
v1.3.2 (bug-fix release): bool? properties no longer throw at render; DateTime / DateTimeOffset time pickers no longer disappear from saved forms on reload (lost ones are restored); JSON export ships its own script (no window.formazeExport snippet needed); properties the renderer cannot bind (nested objects, arrays, get-only members) are skipped instead of rendered as a text box that throws, and short/byte/unsigned integers render as numeric inputs; validation follows a replaced Model instance; numeric rules and conditions parse "3,5" correctly under comma-decimal cultures; Group.Columns clamped; repeater Add disabled without a parameterless constructor. Changed: AddFormazeInMemory now registers a thread-safe singleton store (was scoped, one copy per circuit on Blazor Server). The full history ships in the package as CHANGELOG.md.