带有多个或条件的C#if语句未返回预期行为
本文关键字:返回 语句 C#if 条件 | 更新日期: 2023-09-27 18:19:59
我有一个if语句,它将在以下条件下显示.CSHTML布局:
@if ((ViewBag.title != "Log in")
|| (ViewBag.title != "Register")
|| (ViewBag.title != "Confirm Email")
|| (ViewBag.title != "Login Failure")
|| (ViewBag.title != "Forgot your password?")
|| (ViewBag.title != "Forgot Password Confirmation")
|| (ViewBag.title != "Reset password")
|| (ViewBag.title != "Reset password confirmation")
|| (ViewBag.title != "Send")
|| (ViewBag.title != "Verify"))
{ Layout markup }
当我加载Log in
页面时;但是,将显示布局模板。设置断点表明页面标题正确地对应于!= "Log in"
条件,并且没有抛出异常。可以肯定的是,我在这篇文章中对照解决方案检查了我的标记,它看起来很好。。。不知怎么搞砸了我的陈述逻辑,就是看不出来?
您的条件总是计算为true
。考虑以下条件:
if(value != "A" || value != "B")
它总是true
,因为value
不能同时等于A
和B
。
您要找的是&&
@if ((ViewBag.title != "Log in")
&& (ViewBag.title != "Register")
&& (ViewBag.title != "Confirm Email")
... )
{ Layout markup }
此处需要&&
,而不是||
。你的逻辑是错误的,你的条件永远是正确的。
使用&;奥利弗,在你目前的状态下,你的情况总是正确的。。