我正在使用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上,因此该属性为null。因此null可以是stringnull。您必须将字符串(也可以是)转换为布尔值,以便在if语句中使用它。这样的事情会起作用:

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

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

关于javascript - 运算符“!”不能应用于类型为'<null>的操作数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43106954/

10-16 04:43