uTPro.Feature.SimpleFormBuilder
2.1.2
See the version list below for details.
dotnet add package uTPro.Feature.SimpleFormBuilder --version 2.1.2
NuGet\Install-Package uTPro.Feature.SimpleFormBuilder -Version 2.1.2
<PackageReference Include="uTPro.Feature.SimpleFormBuilder" Version="2.1.2" />
<PackageVersion Include="uTPro.Feature.SimpleFormBuilder" Version="2.1.2" />
<PackageReference Include="uTPro.Feature.SimpleFormBuilder" />
paket add uTPro.Feature.SimpleFormBuilder --version 2.1.2
#r "nuget: uTPro.Feature.SimpleFormBuilder, 2.1.2"
#:package uTPro.Feature.SimpleFormBuilder@2.1.2
#addin nuget:?package=uTPro.Feature.SimpleFormBuilder&version=2.1.2
#tool nuget:?package=uTPro.Feature.SimpleFormBuilder&version=2.1.2
uTPro Simple Form Builder for Umbraco
A lightweight form builder — create and manage dynamic forms directly from the Umbraco backoffice with no code required for everyday use. Render any form on the front-end with a single line, and extend it with custom field types without touching the package.
Works with Umbraco 16, 17 and 18 (multi-targeted net9.0 / net10.0).
Database-agnostic: runs on SQL Server, SQLite and PostgreSQL (v2.0.0+).

Features
- Dedicated uTPro Form section with a left Forms tree (like Dictionary)
- Visual builder: groups → 12-column layout → fields, with live settings
- Copy / paste groups, columns and fields across forms (browser
localStorage) - Import / Export form definitions as JSON (layout only — no entries)
- 19 built-in field types + a 2-step custom field type extension point
- Client-side validation with multi-language (Umbraco Dictionary) messages
- Sensitive fields encrypted at rest (ASP.NET Data Protection), masked in the UI
- File uploads stored outside
wwwroot, served only via an authenticated download endpoint (v2.1.0+) - Entry storage with search, date-range filters, paging, and export as CSV (data only) or ZIP (per-entry folders with data + uploaded files)
- Form Picker property editor (+ ready-made data type) to choose a form from content, with server-side publish validation
- Public REST APIs for submit / render / entries (opt-in per form)
- Role-aware UI driven by Umbraco user groups
Quick Start
Install:
dotnet add package uTPro.Feature.SimpleFormBuilder
On first run it creates its tables and seeds a sample Contact Us form. Grant the uTPro Form section to your user group, build a form, then render it anywhere:
@await Component.InvokeAsync("uTProSimpleForm", new { alias = "contact-us" })
| Umbraco | .NET | Target |
|---|---|---|
| 16 | .NET 9 | net9.0 |
| 17 & 18 | .NET 10 | net10.0 |
Database support
Runs on SQL Server, SQLite and PostgreSQL. All data access uses NPoco strongly-typed queries and provider-agnostic migrations (large JSON columns use SpecialDbTypes.NVARCHARMAX, which maps to nvarchar(max) on SQL Server and text on SQLite / PostgreSQL), so table/column identifiers and types are handled correctly on every database.
For PostgreSQL, install the community provider Our.Umbraco.PostgreSql, enable it in Program.cs with .AddUmbracoPostgreSqlSupport(), and set provider name Npgsql2 in the connection string. The form builder then runs with full functionality — verified end-to-end (unattended install, migration, seed, form submit, and encrypted sensitive fields):

Documentation
| Guide | What's inside |
|---|---|
| Getting Started | Install, compatibility, backoffice layout, building a form, copy/paste |
| Rendering a Form | ViewComponent, parameters, template resolution, overriding views, JS hooks |
| Form Picker | Choose a form from content, Allowed-forms setting, publish validation |
| Field Types | Built-in types, custom field types, FieldHelper, Star Rating example |
| Public APIs & Import/Export | submit / render / entries endpoints, JSON import/export |
| Security & Permissions | Roles, sensitive-data encryption (encode/decode), test accounts |
| Reference | Project structure, static assets, database tables, migrations |
License & Author
MIT © T4VN. Issues and contributions welcome on the GitHub repository.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Umbraco.Cms (>= 17.0.0 && < 19.0.0)
-
net9.0
- Umbraco.Cms (>= 16.0.0 && < 17.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
v2.1.2: Rebuild of 2.1.1 from a clean output — the 2.1.1 package shipped a stale compiled assembly that was missing the v2.1.0 file-upload / ZIP-export server code. No source or API changes versus 2.1.1; this release simply ships the correct assembly. v2.1.1: Dependency cleanup — removed the explicit Microsoft.AspNetCore.DataProtection package reference; the Data Protection APIs (used for sensitive-field and file-token encryption) now come from the Microsoft.AspNetCore.App shared framework that Umbraco.Cms already references. No functional or API changes versus 2.1.0. v2.1.0: File upload fields are now fully supported end-to-end. Files travel with the submission in a single multipart request, so nothing is written to disk until the entry validates and is stored (no orphaned uploads); they are saved OUTSIDE wwwroot (under App_Data/umbraco/Data/uTProSimpleFormUploads) and are only retrievable through an authenticated backoffice download endpoint. Per-field "accept" (extension) and "maxSize" (MB) validation is enforced server-side. Uploaded files are cleaned up automatically when an entry or form is deleted, or when a submission is not stored. Sensitive file fields obey the same permission as sensitive text: masked in the UI and blocked from download for users without the Sensitive Data permission. New "Export data + files (ZIP)" action builds a ZIP with one folder per entry (named by id) containing that entry's CSV row and its uploaded files; the two entry exports (CSV / ZIP) are grouped under a single "Export" dropdown. The submit endpoint still accepts JSON for file-less API consumers (backward compatible). v2.0.2: Republish to fix a stale packaged assembly. The 2.0.1 package shipped a compiled-view DLL that still emitted the old "sf" CSS class names in the rendered form markup (while the CSS/JS static assets already used "uTProForm"), causing a class-name mismatch. This release is built clean so the compiled Razor views correctly emit the "uTProForm" prefix. No source/API changes versus 2.0.1. v2.0.1: Fix encode attribute, and renamed front-end CSS class prefix from "sf" to "uTProForm" (e.g. .sf -> .uTProForm, .sf-error -> .uTProForm-error) and JavaScript hooks window.__sfBeforeSubmit/__sfAfterSubmit to window.__uTProFormBeforeSubmit/__uTProFormAfterSubmit for clearer, collision-free naming. BREAKING: sites that target the old .sf* CSS selectors or use the old window.__sf* hooks must update accordingly. v2.0.0: Cross-database support (SQL Server, SQLite and PostgreSQL). Migration now creates JSON columns via SpecialDbTypes.NVARCHARMAX instead of the SQL Server-only NTEXT, and all data access uses NPoco strongly-typed queries so identifiers are quoted per provider. No schema change for existing databases. v1.0.0: Initial release. Form builder for Umbraco 16, 17 and 18 (multi-target net9.0/net10.0) with groups/columns layout, 19 built-in field types + custom field extension point, client-side validation, sensitive-data encryption, import/export, copy/paste, Form Picker property editor, and public submit/render/entries APIs.