我正在使用MVC 5 ViewBag并尝试执行
@if (!ViewBag.UserLoggedIn) {
<a onclick="javascript:UserSessionManager.UserLogout()">LogOut</a>
}
但收到错误:
Operator '!' cannot be applied to operand of type '<null>'
答案 0 :(得分:1)
在if语句中,您基本上只能拥有true
或false
(boolean
),但UserLoggedIn
上的属性ViewBag
不存在如果它没有设置,那么将为null。因此ViewBag.UserLoggedIn
可以是null
或string
。您必须将字符串(也可以是null
)强制转换为布尔值,以便在if语句中使用它。这样的事情会起作用:
@{
bool isUserLoggedIn = ViewBag.UserLoggedIn ?? false;
}
@if (!isUserLoggedIn) {
<a onclick="javascript:UserSessionManager.UserLogout()">LogOut</a>
}
答案 1 :(得分:0)
如果它是可比较的,你只能使用!
运算符。所以确保你传递布尔变量。如果你不想这样做,那么你可能想做{{ 1}} UserLogout()
。