Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取会话类变量jquery_Jquery_Asp.net Mvc_Class_Session - Fatal编程技术网

获取会话类变量jquery

获取会话类变量jquery,jquery,asp.net-mvc,class,session,Jquery,Asp.net Mvc,Class,Session,我正在开发一个MVC5应用程序 我将UserLoginModel类分配给会话变量 公共类UserLoginModel { 公共长用户_id{get;set;} 公共字符串电子邮件{get;set;} 公共整数Rol_id{get;set;} 公共字符串名称{get;set;} 公共字符串LastName{get;set;} } private const string SessionKey=UserLogin; 私有只读HttpContext\u HttpContext; public void

我正在开发一个MVC5应用程序

我将UserLoginModel类分配给会话变量

公共类UserLoginModel { 公共长用户_id{get;set;} 公共字符串电子邮件{get;set;} 公共整数Rol_id{get;set;} 公共字符串名称{get;set;} 公共字符串LastName{get;set;} } private const string SessionKey=UserLogin; 私有只读HttpContext\u HttpContext; public void SaveUserLoginModel用户 { _httpContext.Session[SessionKey]=用户; } 我需要从jQuery获取这个会话UserLogin.User_id的值。我可以访问

var variable = '@Session["UserLogin"]';
但它给了我一个值,它是类数据类型:

UserLoginModel
如何获取特定值(如用户id)


谢谢

让我们从会话值分配开始:

var variable = '@Session["UserLogin"]';
根据我的测试,这个对JS字符串的直接赋值返回了UserLoginModel的完整类名。要从会话变量中存储的模型类中提取成员类值,您需要声明局部变量,以在具有相同数据类型的视图页中保存每个成员的值,并将会话转换为模型类名,如下所示:

@{
    long user_id = 0; // local variable to hold User_id value

    // better than using (UserLoginModel)Session["UserLogin"] which prone to NRE
    var userLogin = Session["UserLogin"] as UserLoginModel;

    // avoid NRE by checking against null
    if (userLogin != null)
    {
        user_id = userLogin.User_id;
    }
}

<script type="text/javascript">
    var variable = '@user_id'; // returns '1'
</script>
请注意,与会话变量相比,使用@model指令的ViewBag、ViewData和强类型viewmodel是将模型值传递到视图页面的首选方法

实例: