接受客户端的空值

时间:2014-11-04 04:53:55

标签: javascript c# jquery asp.net-mvc

使用下面的代码我识别登录用户的位置。
但是有些用户没有位置 例如:管理员对于所有位置都是通用的,那么如果值为null,我该如何设置 那么它需要显示位置是全部。

@HttpContext.Current.Session["UserLocation"].ToString()

4 个答案:

答案 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