Blazor 相当于 @Url.Action 或 @Html.ActionLink

Ami*_*adi 7 blazor blazor-server-side blazor-webassembly

在 ASP.NET MVC 中,只要您有一个控制器和一个操作,您就可以在 Razor 页面中动态生成指向它的链接,如下所示:

Url.Action("ProductController", "Index", new { id = "123" })
Run Code Online (Sandbox Code Playgroud)

这将返回一个字符串,其中包含具有指定路由值的该操作的路径:

/Product/123
Run Code Online (Sandbox Code Playgroud)

Blazor 中是否有类似的方法,您可以为其提供组件的名称和路由值:

Url.Component("ProductPage", new { id = "123" })
Run Code Online (Sandbox Code Playgroud)

并得到路径?

/Product/123
Run Code Online (Sandbox Code Playgroud)

小智 0

查看NavigationManager: https: //learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.components.navigationmanager ?view=aspnetcore-6.0 。注入它,你就可以做到。我不确定您是否可以将路由值作为对象传递,或者您是否需要制作类似 a 的东西NameValueCollectionTostring()在其上使用该方法。

简而言之,类似于:

@inject NavigationManager NavManager;

// Markup here

@code {

    public void MyMethod() {
        var nameValueCollection = new NameValueCollection();
        var myUrl = "https://localhost:5000/somewhere/";
        // fill data
        NavManager.NavigateTo(myUrl + nameValueCollection.ToString(), false);
    }

}
Run Code Online (Sandbox Code Playgroud)