如何在Blazor中注入IUriHelper服务?

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

1
你是在谈论自己的实现吗? - dani herrera
不行。当我使用@Inject IUriHelper时,我会收到InvalidOperationException: Cannot provide a value for property 'uriHelper' on type 'WebUI.Shared.NavMenu'的错误提示。没有注册类型为'Microsoft.AspNetCore.Blazor.Services.IUriHelper'的服务。 - Dmitry
好的 @sideCode,看我的回答。 - dani herrera
2个回答

20

IUriHelper 现在被替换成了 NavigationManager查看如何在 Blazor 组件中获取当前 URL

你可以在 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>

结果:

输入图像描述


-2

你不需要这样做,它是默认注入的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接