NavigationManager.NavigateTo in razor pages c# sometimes don#39;t work(在剃须刀页面c#中,NavigationManager.NavigateTo有时不起作用)
问题描述
我有一个关于ASP.NET核心页和剃刀页的非常简单的问题。 在c#razor代码中,我希望在某些情况下重定向到另一个路由。 如果以前有异步(等待)的Web服务调用,则NavigationManager.NavigateTo不能正常工作,但也不会引发异常。
async Task Cancel()
{
var authState = await authenticationStateTask;
var user = authState.User;
if (user.Identity.IsAuthenticated){
// if there's some async webservice call action here,
// NavigationManager.NavigateTo does neither work nor an exception is thrown
NavigationManager.NavigateTo("/Project", true);
}
}
您知道可能是什么原因吗?
NavigationManager.NavigateTo有哪些替代方案?
附注。请不要以这种方式建议Response.Redirect(因为这不适合我)。
var context = new Microsoft.AspNetCore.Http.HttpContextAccessor();
context.HttpContext.Response.Redirect("/Project", true)
向您致以亲切的问候, -他。
推荐答案
错误现在已修复。
NavigationManager.NavigateTo(.)出现问题的原因是我在Razor页面的发布表单中使用了按钮。将表单标记替换为div,现在一切正常。
向您致以亲切的问候, -他
<div>
<p>
<label>Project name: @projectName</label>
</p>
<p>
<!-- [...] -->
<span class="btn-cancel">
<button class="btn-primary" @onclick="@(async () => await Cancel())">Cancel</button>
</span>
</p></div>
@code {
// ...
async Task Cancel()
{
// here're other async action calls
NavigationManager.NavigateTo("/Project", true);
}
}
这篇关于在剃须刀页面c#中,NavigationManager.NavigateTo有时不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在剃须刀页面c#中,NavigationManager.NavigateTo有时不起作用


- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- 输入按键事件处理程序 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01