使用下面的代码我识别登录用户的位置。
但是有些用户没有位置
例如:管理员对于所有位置都是通用的,那么如果值为null,我该如何设置
那么它需要显示位置是全部。
@HttpContext.Current.Session["UserLocation"].ToString()
答案 0 :(得分:2)
您只需添加以下表达式...
@(HttpContext.Current.Session["UserLocation"] != null
? HttpContext.Current.Session["UserLocation"].ToString()
: "ALL")
但实际上,尝试改变你的方法......将用户信息保持在会话状态是可怕的而且不可扩展
答案 1 :(得分:1)
你可以尝试这个, @Leo的答案的更短版本: -
@((string)HttpContext.Current.Session["UserLocation"] ?? "ALL")
答案 2 :(得分:0)
我不知道会话状态处理,但也许这有用吗?
if(string.IsNullOrEmpty(@HttpContext.Current.Session["UserLocation"]) && userIsAdministrator)
{
@HttpContext.Current.Session["UserLocation"] = "ALL";
}
答案 3 :(得分:-1)
实现这一目标的最短途径可能是null-coalescing operator
:
string userLocation = @((string)HttpContext.Current.Session["UserLocation"] ?? "ALL");
行为很简单;当左侧为空时,它返回您在右侧指定的内容。如果左侧非空,则返回左侧。
由于string
返回基本类型Session
,您还需要转换为object
。