MudBlazor - Не работают переключатели
Есть вот такой прототип страницы: Try MudBlazor
Этот прототип в песочнице отображается корректно, но когда я пытаюсь перенести прототип в созданное с помощью шаблона Mud Blazor Web App (MudBlazor) приложение:
- Боковое меню (
NavMenu
) грузится сразу видимым и не реагирует на нажатие иконки (menu
) - не прячется т.е. - Группы (
MudNavGroup
) в навигационном меню так же не раскрываются/закрываются
Делаю всё в одном и том же браузере. Консоль браузера молчит - в ошибках пусто. Подскажите, пожалуйста, куда копать?
MainLayout.razor
@using MudBlazorWebApp1.Components
@inherits LayoutComponentBase
<MyMudThemeProvider />
<MudLayout>
<MudAppBar Elevation="1">
<MudIconButton Icon="@Icons.Material.Filled.Menu"
Color="Color.Inherit"
Edge="Edge.Start"
OnClick="@((e) => DrawerToggle())" />
<MudSpacer />
<MudIconButton Icon="@Icons.Material.Filled.MoreVert"
Color="Color.Inherit"
Edge="Edge.End" />
</MudAppBar>
<MudDrawer @bind-Open="_drawerOpen"
Variant="@DrawerVariant.Persistent"
Elevation="2">
<NavMenu />
</MudDrawer>
<MudMainContent>
@Body
</MudMainContent>
</MudLayout>
@code {
bool _drawerOpen = true;
void DrawerToggle()
{
_drawerOpen = !_drawerOpen;
}
}
NavMenu.razor:
<MudNavMenu Bordered="true">
<MudText Typo="Typo.h6" Align="Align.Center">Logo</MudText>
<MudDivider Class="my-2" />
<MudNavLink Href="/">Home</MudNavLink>
<MudNavGroup Title="Administration">
<MudNavLink Href="/adm/page_1">Page 1</MudNavLink>
<MudNavLink Href="/adm/page_2">Page 2</MudNavLink>
<MudNavLink Href="/adm/page_3">Page 3</MudNavLink>
</MudNavGroup>
<MudNavGroup Title="Group 1">
<MudNavLink Href="group_1/page_1">Page 1</MudNavLink>
<MudNavLink Href="group_1/page_2">Page 2</MudNavLink>
</MudNavGroup>
<MudNavGroup Title="Group 2">
<MudNavLink Href="/group_2/page_1">Page 1</MudNavLink>
<MudNavLink Href="/group_2/page_2">Page 2</MudNavLink>
<MudNavLink Href="/group_2/page_3">Page 3</MudNavLink>
<MudNavLink Href="/group_2/page_4">Page 4</MudNavLink>
<MudNavLink Href="/group_2/page_5">Page 5</MudNavLink>
<MudNavLink Href="/group_2/page_6">Page 6</MudNavLink>
</MudNavGroup>
</MudNavMenu>
MyMudThemeProvider.razor:
<CascadingValue Value=false Name="UsePopoverProvider">
<MudThemeProvider Theme="MyTheme"></MudThemeProvider>
</CascadingValue>
@code {
public static MudTheme MyTheme => new()
{
Palette = new PaletteLight()
{
Primary = "#594AE2",
AppbarBackground = "#594AE2"
},
PaletteDark = new PaletteDark()
{
Primary = "#594AE2",
AppbarBackground = "#594AE2"
}
};
}
App.razor:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" rel="stylesheet" />
<link href="_content/MudBlazor/MudBlazor.min.css" rel="stylesheet" />
<link rel="stylesheet" href="MudBlazorWebApp1.styles.css" />
<link rel="icon" type="image/png" href="favicon.ico" />
<HeadOutlet />
</head>
<body>
<Routes />
<script src="_framework/blazor.web.js"></script>
<script src="_content/MudBlazor/MudBlazor.min.js"></script>
</body>
</html>
_Imports.razor:
@using System.Net.Http
@using System.Net.Http.Json
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using MudBlazorWebApp1
@using MudBlazorWebApp1.Components
@using MudBlazor
@using MudBlazor.Services
Routes.razor:
<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(Layout.MainLayout)" />
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
</Router>
Program.cs
using MudBlazor.Services;
using MudBlazorWebApp1.Components;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
builder.Services.AddMudServices();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error", createScopeForErrors: true);
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAntiforgery();
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
app.Run();