@page "/" @using System.ComponentModel.DataAnnotations; <PageTitle>@PageTitle</PageTitle> <h1>Hello, world!</h1> Welcome to your new app. <EditForm Model="ParentModel" OnValidSubmit="ValidFormSubmitted" OnInvalidSubmit="InvalidFormSubmitted"> <ObjectGraphDataAnnotationsValidator /> <ValidationSummary /> <div> <InputText @bind-Value="ParentModel.Name" /> <ValidationMessage For="@(() => ParentModel.Name)" /> </div> <div> <InputTextArea @bind-Value="ParentModel.Description" /> </div> <div> <AddressComponent ChildAddress="ParentModel.SimpleAddress" ChildSimpleString="@ParentModel.JustAString" /> </div> <input type="submit" class="btn btn-primary" value="Save Things" /> </EditForm> <div>@StatusMessage</div> @code { public class SimpleModel { [Required] public string? Name { get; set; } public string? Description { get; set; } [Required] public string? JustAString { get; set; } [ValidateComplexType] public Address? SimpleAddress { get; set; } = new Address(); } public class Address { public string? Street { get; set; } [Required] public string City { get; set; } = string.Empty; } [Parameter] public string? PageTitle { get; set; } = "IMA TITLE"; public SimpleModel ParentModel { get; set; } = new SimpleModel(); public string StatusMessage { get; set; } = "nothing has happened yet"; protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); ParentModel = new SimpleModel() { }; } private async Task ValidFormSubmitted(EditContext editContext) { StatusMessage = "yay"; } private async Task InvalidFormSubmitted(EditContext editContext) { StatusMessage = "boo"; } private async Task OnMyAddressThingChanged(Address addressThing) { StatusMessage = "address thing changed"; } }
namespace BlazorFiddleProject { using Microsoft.Extensions.DependencyInjection; public class Startup { public void ConfigureServices(IServiceCollection services) { } // Warning: IComponentsApplicationBuilder - not the original .NET 6.0 interface. This was done to make old saves work. public void Configure(IComponentsApplicationBuilder app) { app.AddComponent<App>("app"); } } }
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width"> <title>BlazorFiddleProject</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link href="_content/MatBlazor/dist/matBlazor.css" rel="stylesheet" /> <script src="_content/MatBlazor/dist/matBlazor.js"></script> <style> app { } </style> <script type="text/javascript"> </script> </head> <body> <app>Loading...</app> <script src="_framework/blazor.webassembly.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body> </html>

Add component

BlazorFiddle was updated from Blazor 0.7 to .NET 6.0. Your old source code could not work. You need to upgrade to latest.