【问题标题】:How can a Blazor server side app redirect from http://hostname to http://hostname/route1 on load?Blazor 服务器端应用程序如何在加载时从 http://hostname 重定向到 http://hostname/route1?
【发布时间】:2021-05-01 17:26:16
【问题描述】:

对于我使用 MVC/TypeScript 或 MVC/Angular 构建的几个网站,我需要立即将用户从 http://hostname 重定向到 http://hostname/route1。我正在尝试弄清楚如何使用 Blazor 服务器端实现相同的功能。

我知道这可以使用 IIS URL 重写引擎来完成,但是,尚未确定应用程序是托管在 IIS 下、自托管在 Windows 上还是托管在 Linux 上。

这可能吗?如果是这样,这种实现的最佳实践方法是什么?

谢谢

【问题讨论】:

  • 您可以通过调用注入的 NavigationManager 来重定向索引组件的 OnInitialized() 方法以重定向到您想要的位置。
  • 因此,您使索引组件无用,因为每当用户尝试访问索引页面时,他都会自动重定向到所需的位置。这个解决方案相当不切实际,不是吗?

标签: blazor blazor-server-side .net-5 asp.net5


【解决方案1】:

您可以在您的根页面上对OnInitialize 进行重定向(可能是index.razor

@page "/"
@inject NavigationManager MyNavigationManager
@code
{
    protected override void OnInitialized()
    {
        MyNavigationManager.NavigateTo("route1");
    }
}

NavigationManager cheatsheet了解更多关于navigationManager的信息

【讨论】:

    【解决方案2】:

    谢谢大家。您提供了一个起点。

    我更改了 MainLayout.razor 以覆盖 OnInitialized 方法。

    @inject NavigationManager MyNavigationManager
    @code
    {
        protected override void OnInitialized()
        {
            var currentUri = new Uri(MyNavigationManager.Uri);
            if (currentUri.AbsolutePath == "/")
                    MyNavigationManager.NavigateTo("route1");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-04-06
      • 1970-01-01
      • 2023-03-12
      • 2011-10-30
      • 1970-01-01
      • 2020-08-24
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多