@page "/" @using Microsoft.AspNetCore.Components.Forms @using System.Linq.Expressions @code { private ESelect eSelect; // private string eSelectResult; private readonly List<SelectOption> options = new List<SelectOption> { new SelectOption { Id = 1, Value = "Jones" }, new SelectOption { Id = 2, Value = "Smith" }, new SelectOption { Id = 3, Value = "Bender" }, new SelectOption { Id = 4, Value = "Baggio" }, new SelectOption { Id = 5, Value = "Allen" }, new SelectOption { Id = 6, Value = "Biggs" }, new SelectOption { Id = 7, Value = "Randall" }, new SelectOption { Id = 8, Value = "Anderson" }, new SelectOption { Id = 8, Value = "Reeves" } }; public static void ActionPlaceholder() { Log.Print("Action - Parent Method Executed"); } public void OnValueChange(ChangeEventArgs e) { Log.Print("OnValueChange " + e.Value); } public Action EnableEnhancedSelect2 = ActionPlaceholder; void ValidFormSubmit() { Log.Print("Form Submit Placeholder"); } public class FormModel { public string LastName {get; set;} } public FormModel Form {get; set;} = new FormModel { LastName = "Smith" }; // for demo only to make log show on start protected override void OnAfterRender(bool firstRender) { if (firstRender && Log.Items.Count > 0) StateHasChanged(); base.OnAfterRender(firstRender); } } <EditForm Model="Form" OnValidSubmit="ValidFormSubmit" class="mt-5"> <DataAnnotationsValidator /> <h3>Form Example:</h3> <ValidationSummary /> <h3 class="mt-4">Enhanced Select</h3> <ESelect Id="ESelect" @ref="eSelect" @bind-Value="Form.LastName" Options="@options" ValidationFor="@( () => Form.LastName )" Label="Last Name" Trigger="EnableEnhancedSelect2"/> <p>Form.LastName = @Form.LastName</p> </EditForm> <hr/> Log: <ol> @foreach(var item in Log.Items) { <li>@item</li> } </ol>
namespace BlazorFiddleProject { using Microsoft.AspNetCore.Components.Builder; using Microsoft.Extensions.DependencyInjection; using System.Collections.Generic; public class SelectOption { public int Id { get; set; } public string Value { get; set; } } public static class Log { public static List<string> Items {get; set;} = new List<string>(); public static void Print(string text) { Items.Insert(0, text); } } public class Startup { public void ConfigureServices(IServiceCollection services) { } 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></title> </head> <body> <app>Loading...</app> <script src="_framework/blazor.webassembly.js"></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.