获取会话类变量jquery
我正在开发一个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的值。我可以访问获取会话类变量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
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是将模型值传递到视图页面的首选方法
实例: