使用Razor执行异常代码

时间:2018-05-30 14:52:33

标签: javascript razor twitter-bootstrap-3

我正在尝试在注销并指向索引页面后隐藏菜单。 我有一个为每个html页面加载的布局页面。

这是代码:

注销时

            $('#Logoutmenu').click(function (e) {
            window.location.href = '@Url.Action("Index", "Home")';
            sessionStorage.setItem("TipoUtente", null);
            sessionStorage.setItem("Utente", null);
            //window.location.href = 'Index';
            $("#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(function () {

        if (sessionStorage.getItem("Utente") == null) {
            $("#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");
            }
        else {
            alert("w " + sessionStorage.getItem("Utente"));
            $("#Logoutmenu").removeClass("nav navbar-nav hidden").addClass("nav navbar-nav show");
            $("#Loginmenu").removeClass("nav navbar-nav show").addClass("nav navbar-nav hidden");
            $("#topmenu").removeClass("nav navbar-nav hidden").addClass("nav navbar-nav show");
         };

    })

尽管语句的结果(sessionStorage.getItem(“User”)== null)为true,但代码的执行会进入'else'部分!!

如果删除Razor代码行(window.location.href = '@Url.Action("Index", "Home")';),操作正确!!

我做错了什么?

1 个答案:

答案 0 :(得分:0)

用''替换null就足够了。 sessionstorage函数只存储字符串,比较字符串为null,代码未正确执行。

@buffjape。 指令的顺序不会影响。