A lightweight, flexible form generator for Blazor applications that creates dynamic forms from annotated C# classes.
- Creates forms automatically from C# classes
- Built-in validation through data annotations
- Customizable form rendering and layout
- Type-safe form handling
dotnet add package BlazorDynamicForm - Add Service in Program.cs
builder.Services.AddBlazorDynamicForm();- Create a Model with Annotations
publicclassContactForm{[Required,Display(Name="Name")]publicstringName{get;set;}[EmailAddress]publicstringEmail{get;set;}[Phone,Display(Name="Phone Number")]publicstringPhoneNumber{get;set;}[TextArea]publicstringMessage{get;set;}}- Use the DynamicForm Component
@usingBlazorDynamicForm.Components@usingTypeAnnotationParser
<DynamicFormScheme="@_formScheme"Data="_formData"OnValidSubmit="@HandleSubmit">
<SubmitTemplate>
<buttontype="submit"class="btn btn-primary">Submit</button>
</SubmitTemplate>
</DynamicForm>
@code{privateSchemeModel_formScheme;
privateIDictionary<string,object> _formData=newDictionary<string, object>();
protectedoverridevoidOnInitialized()
{varparser=newTypeAnnotationParser();
_formScheme=parser.Parse<ContactForm>();
}privatevoidHandleSubmit(IDictionary<string, object>data)
{// Handle form data}}BlazorDynamicForm provides additional attributes for enhanced form customization:
[TextArea]- Creates a multi-line text input[Placeholder("Enter text...")]- Adds placeholder text[Grid(6)]- Controls the layout grid width[Name("Custom Field Name")]- Sets a custom field name[MultipleSelect("Option1", "Option2", "Option3")]- Creates a dropdown with options
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
