MAUI Blazor中Navigation Manager跳转后自动返回首页的问题咨询
解决Blazor MAUI登录后跳转瞬间返回首页的问题
你的问题根源是登录按钮包裹在<form>标签内,按钮默认的表单提交行为会在导航执行后触发页面回发,导致页面重新加载并回到首页。以下是两种解决办法:
方法一:阻止按钮的默认提交行为
给按钮的点击事件添加阻止默认行为的指令,避免表单提交:
修改后的按钮代码:
<button @onclick="()=>NavigateToCompany()" @onclick:preventDefault class="form_btn">Sign In</button>
或者也可以通过事件参数手动阻止:
private void NavigateToCompany(MouseEventArgs e) { e.PreventDefault(); Navigation.NavigateTo("/company-select"); }
对应按钮写法:
<button @onclick="NavigateToCompany" class="form_btn">Sign In</button>
方法二:移除无意义的<form>标签
如果这个<form>仅用于样式布局,没有实际表单提交需求,直接删除即可:
修改后的首页结构代码:
<div class="center_div" > <div class="center_content"> <center> <h3 class="login_title">Sign In</h3> <p class="login_text">Login with your Credentials</p> <div class="field_cont"> <input type="text" class="field_input" placeholder=" " /> <label class="field_label">Username</label> </div> <div class="field_cont"> <input type="password" class="field_input" placeholder=" " /> <label class="field_label">Password</label> </div> <button @onclick="()=>NavigateToCompany()" class="form_btn">Sign In</button> </center> </div> </div>
注意:实际开发中,记得在NavigateToCompany方法里添加凭证校验逻辑,确保只有验证通过的用户才能跳转到下一页。
内容的提问来源于stack exchange,提问作者Gayantha
相关产品推荐
相关产品推荐

