带有多个或条件的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"条件,并且没有抛出异常。可以肯定的是,我在这篇文章中对照解决方案检查了我的标记,它看起来很好。。。不知怎么搞砸了我的陈述逻辑,就是看不出来?


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

您的条件总是计算为true。考虑以下条件:

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

它总是true,因为value不能同时等于AB

您要找的是&&

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

此处需要&&,而不是||。你的逻辑是错误的,你的条件永远是正确的。

使用&奥利弗,在你目前的状态下,你的情况总是正确的。。