@page "/" @using MatBlazor @inject HttpClient http <MatAppBar Fixed="true"> <MatAppBarRow> <MatAppBarSection> <MatIconButton Icon="menu"></MatIconButton> <MatAppBarTitle>Blazor news client</MatAppBarTitle> <!-- Titlebar menu --> <ElementMatMenuButtons MenuRecords="@this.MenuRecords" /> </MatAppBarSection> <MatAppBarSection Align="@MatAppBarSectionAlign.End"> <MatIconButton Icon="favorite" Link="http://samprof.com"></MatIconButton> </MatAppBarSection> </MatAppBarRow> </MatAppBar> <div style="padding-top: 70px;"> <p>Contents here</p> <MatButton label="English" OnClick="@(() => this.SetLanguage("en"))" /> <MatButton label="Skandinavisk" OnClick="@(() => this.SetLanguage("nb"))" /> </div> @functions { protected List<RecordMenu> MenuRecords = new List<RecordMenu>(); protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); this.SetLanguage("en"); } // OnInitializedAsync protected void SetLanguage(String language) { if (language == "en") { this.MenuRecords = new List<RecordMenu>() { new RecordMenu() { Name = "One" }, new RecordMenu() { Name = "Two", Icon="menu", Children = new List<RecordMenu>() { new RecordMenu() { Name = "Sub one" }, new RecordMenu() { Name = "Sub two" } }}, new RecordMenu() { Name = "Tree" }, new RecordMenu() { Name = "Four" } }; } if (language == "nb") { this.MenuRecords = new List<RecordMenu>() { new RecordMenu() { Name = "En" }, new RecordMenu() { Name = "To" }, new RecordMenu() { Name = "Tre", Icon="menu", Children = new List<RecordMenu>() { new RecordMenu() { Name = "Barn et" }, new RecordMenu() { Name = "Barn to" } , new RecordMenu() { Name = "Barn tre" } }}, }; } } // SetLanguage }
namespace BlazorFiddleProject { using System; using MatBlazor; using System.Collections.Generic; using Microsoft.AspNetCore.Components.Builder; using Microsoft.Extensions.DependencyInjection; public class Startup { public void ConfigureServices(IServiceCollection services) { } // ConfigureServices public void Configure(IComponentsApplicationBuilder app) { app.AddComponent<App>("app"); } // Configure } // Startup public class RecordMenu { public Guid Guid = Guid.NewGuid(); public String Icon = "favorite"; public String Name = "Default"; public List<RecordMenu> Children = new List<RecordMenu>(); } // public class MatMenuReference { public ForwardRef Item1 = new ForwardRef(); public BaseMatMenu Item2 = null; } // MatMenuReference }
<!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"> <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.