@page "/" <h2 class="bg-info p-1">Update Role</h2> @Message <EditForm Model="@Model" OnSubmit="HandleSubmit"> <input type="hidden" name="roleName" value="@Model.RoleName" /> <input type="hidden" name="roleId" value="@Model.RoleId" /> <table class="table table-bordered table-sm"> <tbody> <tr> <th colspan="2"> <h2 class="bg-info p-1 text-white">Add to @Model.RoleName</h2> </th> </tr> @if (Model.NonMembers.Count == 0) { <tr><td colspan="2">All Users Are Members</td></tr> } else { @foreach (var user in Model.NonMembers) { <tr> <td>@user.UserName</td> <td> <input type="checkbox" @bind-value="@user.IsChecked" /> </td> </tr> } } </tbody> <tbody> <tr> <th colspan="2"> <h2 class="bg-info p-1 text-white">Remove From @Model.RoleName</h2> </th> </tr> @if (Model.Members.Count == 0) { <tr><td colspan="2">No Users Are Members</td></tr> } else { @foreach (var user in Model.Members) { <tr> <td>@user.UserName</td> <td> <input type="checkbox" @bind-value="@user.IsChecked" /> </td> </tr> } } </tbody> </table> <button type="submit" class="btn btn-primary">Save</button> </EditForm> @code { public class FormModel { public List<FormUserModel> Members {get; set;} = new(); public List<FormUserModel> NonMembers {get; set;} = new(); public int RoleId {get; set;} public string RoleName {get; set;} } public class FormUserModel { public string Id {get; set;} public bool IsChecked {get; set;} public string UserName {get; set;} } private FormModel Model { get; set; } private string? Message { get; set; } = "Hello World!"; private List<string> AddIds { get; set; } = new List<string>(); private List<string> DeleteIds { get; set; } = new List<string>(); protected override void OnInitialized() { Model = new FormModel { RoleId = 1, RoleName = "Admin", Members = new List<FormUserModel> { new FormUserModel { Id = "1", UserName = "admin-1" }, new FormUserModel { Id = "2", UserName = "admin-2" }, new FormUserModel { Id = "3", UserName = "admin-3" }, }, NonMembers = new List<FormUserModel> { new FormUserModel { Id = "4", UserName = "non-admin-1" }, new FormUserModel { Id = "5", UserName = "non-admin-2" }, new FormUserModel { Id = "6", UserName = "non-admin-3" }, } }; } private Task HandleSubmit() { var add = Model .NonMembers .Where(x => x.IsChecked) .Select(x => x.Id); var remove = Model .Members .Where(x => x.IsChecked) .Select(x => x.Id); Message = $"Add: {string.Join(", ", add)}. Remove: {string.Join(",", remove)}"; return Task.CompletedTask; } }
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.