我有一个基于标准模板的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/>
}