Blazor路由:如何防止通过URL直接访问组件



我有一个基于标准模板的blazor wasm应用程序。在我的导航中,我有几个组件。由于应用程序的内容,我想阻止对组件的直接访问。

例如阻止直接访问组件"myComponent"通过使用如下链接:https://www.example.com/myComponent

这是必要的,因为用户必须在应用程序中遵循严格的流程。

一旦我从组件中删除@page指令,它就无法通过。并且导航不再工作了。

进一步:如何首先从url中隐藏组件名称?

期待一些提示!

阻止直接访问组件"myComponent"使用如下链接:https://www.example.com/myComponent

可以通过而不是来实现添加@page "myComponent"
您想要的是默认行为。

如何从url中隐藏组件名称?

当它是一页时,你将需要一些东西。但是你可以选择任何你想要的名字。

也许你可以用页面和组件的区别来更新你的问题。告诉我们为什么你不想在url中包含哪些信息。

页是具有一个或多个路由属性(@page "<url-patern>")的组件

这是必要的,因为用户必须在应用程序中遵循严格的流程。

你可以构建一个'wizard':一个维护'step'并显示基于该值的特定组件的主页。使用EventCallback来前进或后退。

您可以使用NavigationManager将用户重定向到其他页面

的例子:

@inject NavigationManager NavigationManager

@code{
....
protected async override void OnInitialized(){  
if(!isLogin) {
NavigationManager.NavigateTo($"/login");
}
}
}

你也可以在渲染组件之前检查需求

例子
@if (isLogin)
{
<myComponent/>
}

相关内容

  • 没有找到相关文章

最新更新