You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Razor跳转引发sessionStorage判断异常,菜单显示错误求助

问题分析与解决方案

我来帮你拆解下这个问题的核心原因:

你当前的退出登录点击事件代码里,先执行了页面跳转,之后才去清除sessionStorage——这就导致跳转操作会立即中断当前页面的JS执行,后面的sessionStorage.setItem("TipoUtente", null);和sessionStorage.setItem("Utente", null);根本没机会运行!

所以当首页(Index)加载时,sessionStorage里的Utente还是登录状态下的值,布局页的document ready逻辑自然就走进了else分支,出现你看到的异常情况。而删除跳转代码后,清除存储的代码能正常执行,布局页的逻辑也就恢复正常了。

修正后的退出登录代码

只需要调整代码顺序,先清除sessionStorage,再执行页面跳转:

$('#Logoutmenu').click(function (e) {
    // 先清除会话存储,确保跳转前状态已更新
    sessionStorage.setItem("TipoUtente", null);
    sessionStorage.setItem("Utente", null);
    // 再执行页面跳转
    window.location.href = '@Url.Action("Index", "Home")';
    
    // 注:下面的DOM操作可以直接删除
    // 因为页面马上就会跳转,当前页面的DOM修改不会生效
    // $("#Loginmenu").removeClass("nav navbar-nav hidden").addClass("nav navbar-nav show");
    // $("#Logoutmenu").removeClass("nav navbar-nav show").addClass("nav navbar-nav hidden");
    // $("#topmenu").removeClass("nav navbar-nav show").addClass("nav navbar-nav hidden");
});

关于布局页逻辑的补充

你的布局页document ready逻辑是完全正确的:只要sessionStorage里的Utente为null,就会自动切换到登录菜单状态。只要保证跳转前成功清除了Utente,首页加载时就会正常进入if分支,完美实现你想要的“退出后隐藏菜单并跳转首页”的效果。

内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:15:27