File: Components\NavigationManagerExtensions.cs
Web Access
Project: src\playground\TestShop\MyFrontend\MyFrontend.csproj (MyFrontend)
namespace Microsoft.AspNetCore.Components;
 
public static class NavigationManagerExtensions
{
    public static string ToAbsolutePath(this NavigationManager navigationManager, string uri)
    {
        // Workaround for Blazor issue: https://github.com/dotnet/aspnetcore/issues/51380
 
        if (uri.StartsWith(navigationManager.BaseUri, StringComparison.Ordinal))
        {
            // The absolute URI must be of the form "{baseUri}something" (where baseUri ends with a slash),
            // and from that we return "something". If baseUri includes a path, we return that path too.
            return new Uri(uri).PathAndQuery;
        }
 
        var message = $"The URI '{uri}' is not contained by the base URI '{navigationManager.BaseUri}'.";
        throw new ArgumentException(message);
    }
}