想要在MainLayout(Blazor.net)中使导航动态化

时间:2019-07-03 23:23:51

标签: layout dynamic navigation blazor

无法在Blazor.net(Core 3.0 alpha 6)中进行动态导航(由Http Get方法加载)

我尝试将默认的blazor项目模板的“ MainLayout.razor”文件包含以下动态循环。

the @body content was loaded correctly but navigation menu remains empty...

@inherits LayoutComponentBase
@using Pegasus.Shared
@inject HttpClient Http

<div class="sidebar">
  @if (categories == null)
  {
    <p><em>Loading...</em></p>
  }
  else
  {
    @foreach (var category in categories)
    {
      <div>@category.Name</div>
    }
  }

</div>

<div class="main">
  <div class="top-row px-4">
    <a href="http://blazor.net" target="_blank" class="ml-md-   auto">About</a>
  </div>

  <div class="content px-4">
    @Body
  </div>
</div>

@code{
  gb_Category[] categories;

  protected override async Task OnInitAsync()
  {
    Console.WriteLine("Test");

    var storeId = new Guid("c72d9757-98d5-4da2-89ea-2ffe44490162");

    categories = await Http.GetJsonAsync<gb_Category[]>($"api/Category/actives/{storeId}");
  }
}

没有错误消息,但导航菜单为空,我不知道为什么现在如此...

如果我将其放入@page“ /”中,但在MainLayout的@body中,则会运行相同的代码... 目标是通过Http动态加载导航项,然后在主要数据(@page)中导航。

Thx

0 个答案:

没有答案