【问题标题】:How to inject IUriHelper service in Blazor?如何在 Blazor 中注入 IUriHelper 服务?
【发布时间】:2020-01-29 00:42:34
【问题描述】:

如何在 Blazor 中将 IUriHelper 服务的实现添加到 Startup.cs?

【问题讨论】:

  • 你说的是你自己的实现吗?
  • 没有。当我使用 @Inject IUriHelper 时,我收到 InvalidOperationException:无法为类型“WebUI.Shared.NavMenu”的属性“uriHelper”提供值。没有“Microsoft.AspNetCore.Blazor.Services.IUriHelper”类型的注册服务。
  • 好的@sideCode,看看我的回答。

标签: asp.net-core blazor blazor-server-side


【解决方案1】:

你不必,它是默认注入的。

【讨论】:

    【解决方案2】:

    IUriHelper 现在是 NavigationManagerSee Get current Url in a Blazor component了解详情。

    您可以在Shared/NavMenu.cshtml 处注入和使用NavigationManager,而不会出现问题。你不需要任何特殊的,你不需要在应用程序启动时添加NavigationManager,它已经注入了。示例:

    Shared/NavMenu.cshtml:

    @inject NavigationManager NavigationManager
    
    <div class="top-row pl-4 navbar navbar-dark">
        <a class="navbar-brand" href="">
            @(NavigationManager.Uri)    @* <--- sample using it --- *@
        </a>
        <button class="navbar-toggler" @onclick="ToggleNavMenu">
            <span class="navbar-toggler-icon"></span>
        </button>
    </div>
    

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多