在服务器端 Blazor 应用程序(Core 3.1)中有一个 Razor,它接受 @page
属性中的标识符。如果 URL 中提供的标识符对应于现有实体,则页面将正常呈现。但是,如果标识符不是已知实体(由其在存储库中的存在确定),我希望系统执行与 404 Not Found 对应的任何操作。然而,我不知道这一点,直到路由已经匹配并且我的页面的 OnInitialized()
正在执行。
在这种情况下,我如何“重定向”到默认的 404 处理。
该页面如下所示:
@page "/{projectname}"
<!-- HTML Here -->
@code {
[Parameter]
public string ProjectName {get; set;}
private UpdateProjectViewModel Project;
protected override void OnInitialized()
{
var project = Repository.Get(ProjectName);
if (project == null)
{
WANT TO USE 404 ROUTING HERE.
}
Project = new UpdateProjectViewModel(project));
}
}
最佳答案
这是代码片段
@page "/navigate"
@inject NavigationManager NavigationManager
<h1>Navigate in Code Example</h1>
<button class="btn btn-primary" @onclick="NavigateToCounterComponent">
Navigate to the Counter component
</button>
@code {
private void NavigateToCounterComponent()
{
NavigationManager.NavigateTo("404");
}
}
关于c# - 如何在 Razor Page OnInitialized 事件中使用 404 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59473488/