操作员 '!'不能应用于 '<null> 类型的操作数

Operator '!' cannot be applied to operand of type '<null>

我正在使用 MVC 5 ViewBag 并尝试这样做

@if (!ViewBag.UserLoggedIn) {
   <a onclick="javascript:UserSessionManager.UserLogout()">LogOut</a>
}

但出现错误:

Operator '!' cannot be applied to operand of type '<null>'

在 if 语句中你只能有 truefalse(基本上是 boolean)但是 属性 UserLoggedIn 不会存在于ViewBag 如果未设置,则为空。所以 ViewBag.UserLoggedIn 可以是 nullstring。您必须将字符串(也可以是 null)转换为布尔值,以便在 if 语句中使用它。这样的事情会起作用:

@{
    bool isUserLoggedIn = ViewBag.UserLoggedIn ?? false;
}

@if (!isUserLoggedIn) {
   <a onclick="javascript:UserSessionManager.UserLogout()">LogOut</a>
}

您只能使用 ! 运算符,如果它是 comparable.So 确保您传递了 布尔值 variable.If 您不想这样做,那么你可能想要 UserLogout() where UserLoggedIn == null.