我有一个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"
条件,并且不会抛出任何异常。只是为了确定,我在this post中检查了我的标记与解决方案,看起来很好......有点搞砸了我的陈述逻辑并且没有看到它?
答案 0 :(得分:4)
你想要&&
,而不是||
。你的逻辑是错误的,你的情况永远是真的。
答案 1 :(得分:4)
您的情况总是评估为true
。请考虑以下条件:
if(value != "A" || value != "B")
始终为true
,因为value
不能同时等同于A
和B
。
您正在寻找的是&&
@if ((ViewBag.title != "Log in")
&& (ViewBag.title != "Register")
&& (ViewBag.title != "Confirm Email")
... )
{ Layout markup }
答案 2 :(得分:1)
使用&& opreator,在你目前的状态,你的状况总是如此......