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有时不起作用
				
        
 
            
        基础教程推荐
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
 - 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
 - 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
 - 错误“此流不支持搜索操作"在 C# 中 2022-01-01
 - JSON.NET 中基于属性的类型解析 2022-01-01
 - 全局 ASAX - 获取服务器名称 2022-01-01
 - 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
 - 如何动态获取文本框中datagridview列的总和 2022-01-01
 - 首先创建代码,多对多,关联表中的附加字段 2022-01-01
 - 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
 
    	
    	
    	
    	
    	
    	
    	
    	
						
						
						
						
						
				
				
				
				