首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >js不执行'else‘语句

问js不执行'else‘语句
EN

Stack Overflow用户
提问于 2019-05-30 17:05:17
回答 2查看 87关注 0票数 0

我在JavaScript中有一个if-else语句,它返回false,但不在'else‘中执行代码。

cshtml文件中脚本的一部分:

代码语言:javascript
复制
if (@Session["mission"].ToString() != "1") {
    setInterval(function () { myTimer(ctxPoints, ctxLines); }, 1000 / @ViewBag.rate);  
} else {
    alert("hi");
}

在调试过程中,‘@Session“任务”.ToString() !=“1”语句返回false,但是屏幕上没有任何东西。

EN

回答 2

Stack Overflow用户

发布于 2019-05-30 17:21:38

您应该打开您的web浏览器开发人员控制台,并看到到达浏览器的真实脚本。

Razor部件,@Session["mission"].ToString()不存在于浏览器脚本中,因为它们在发送到浏览器之前会在服务器中进行计算。因此,在控制台中尝试@Session["mission"].ToString() != "1"是没有意义的。在浏览器中,你会得到类似于:if (1 != "1"),甚至像if ( != "1")这样的内容,这会导致一个错误。

JavaScript进行合并,因此在使用比较器==或!=时,1等于"1",因此不需要在值两边包含qoutes (除非遇到上面提到的错误:在本例中,如果包含引号,则会得到if ("" != "1"))。

通过使用!==或===来避免合并,这会认为1不等于"1",所以在这种情况下,包括引号不会有任何不同。

票数 3
EN

Stack Overflow用户

发布于 2019-05-30 17:12:19

我认为你应该清除Js代码和c#代码

代码语言:javascript
复制
if ("@Session["mission"].ToString()" != "1")

在c#中Session["mission"].ToString()此打印字符串,但您需要将其封装在引号中,以使此值获得类型string

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56375031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档