Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

TheSmallPixel/BlazorDynamicForm

BlazorDynamicForm

A lightweight, flexible form generator for Blazor applications that creates dynamic forms from annotated C# classes.

Features

  • Creates forms automatically from C# classes
  • Built-in validation through data annotations
  • Customizable form rendering and layout
  • Type-safe form handling

Installation

dotnet add package BlazorDynamicForm 

Quick Start

  1. Add Service in Program.cs
builder.Services.AddBlazorDynamicForm();
  1. Create a Model with Annotations
public class ContactForm
{
 [Required, Display(Name = "Name")]
 public string Name { get; set; }
 
 [EmailAddress]
 public string Email { get; set; }
 
 [Phone, Display(Name = "Phone Number")]
 public string PhoneNumber { get; set; }
 
 [TextArea]
 public string Message { get; set; }
}
  1. Use the DynamicForm Component
@using BlazorDynamicForm.Components
@using TypeAnnotationParser
<DynamicForm Scheme="@_formScheme" Data="_formData" OnValidSubmit="@HandleSubmit">
 <SubmitTemplate>
 <button type="submit" class="btn btn-primary">Submit</button>
 </SubmitTemplate>
</DynamicForm>
@code {
 private SchemeModel _formScheme;
 private IDictionary<string, object> _formData = new Dictionary<string, object>();
 
 protected override void OnInitialized()
 {
 var parser = new TypeAnnotationParser();
 _formScheme = parser.Parse<ContactForm>();
 }
 
 private void HandleSubmit(IDictionary<string, object> data)
 {
 // Handle form data
 }
}
  1. Example

    Screenshot 2025年05月06日 170325

Custom Attributes

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

License

GPL-3.0

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

About

BlazorDynamicForm is a dynamic form generator.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /