具有多个或条件未返回预期行为的C#if语句

时间:2015-10-31 22:38:38

标签: c# if-statement conditional conditional-formatting

我有一个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中检查了我的标记与解决方案,看起来很好......有点搞砸了我的陈述逻辑并且没有看到它?

3 个答案:

答案 0 :(得分:4)

你想要&&,而不是||。你的逻辑是错误的,你的情况永远是真的。

答案 1 :(得分:4)

您的情况总是评估为true。请考虑以下条件:

if(value != "A" || value != "B")

始终为true,因为value不能同时等同于AB

您正在寻找的是&&

@if ((ViewBag.title != "Log in")
&& (ViewBag.title != "Register")
&& (ViewBag.title != "Confirm Email")
... )
{ Layout markup }

答案 2 :(得分:1)

使用&& opreator,在你目前的状态,你的状况总是如此......