【问题标题】:Blazor equivalent to @Url.Action or @Html.ActionLinkBlazor 等效于 @Url.Action 或 @Html.ActionLink
【发布时间】:2021-03-15 17:12:36
【问题描述】:

在 ASP.NET MVC 中,只要你有一个控制器和一个动作,你就可以在 razor 页面中动态生成一个指向它的链接,例如:

Url.Action("ProductController", "Index", new { id = "123" })

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

/Product/123

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

Url.Component("ProductPage", new { id = "123" })

然后获取路径?

/Product/123

【问题讨论】:

    标签: blazor blazor-server-side blazor-webassembly


    【解决方案1】:

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

    简而言之,类似于:

    @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);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多