获取会话类变量jquery

时间:2017-07-28 15:01:23

标签: jquery asp.net-mvc class session

我正在开发2.02 ms ± 24.3 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) 2.05 ms ± 7.07 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) 应用

我将MVC 5类分配给UserLoginModel变量。

Session

我需要从jQuery获取此Session public class UserLoginModel { public long User_id { get; set; } public string Email { get; set; } public int Rol_id { get; set; } public string Name { get; set; } public string LastName { get; set; } } private const string SessionKey = "UserLogin"; private readonly HttpContext _httpContext; public void Save(UserLoginModel user) { _httpContext.Session[SessionKey] = user; } 的值。我可以访问

UserLogin.User_id

但是它给了我类数据类型的值:

var variable = '@Session["UserLogin"]';

如何获取UserLoginModel 等特定值?

由于

1 个答案:

答案 0 :(得分:1)

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

var variable = '@Session["UserLogin"]';

根据我的测试,这个对JS字符串的直接赋值返回了UserLoginModel的完整类名。要从会话变量中的存储模型类中提取成员类值,您需要声明局部变量以使用相同数据类型&amp ;;保存视图页中每个成员的值。将会话转换为模型类名称,如下所示:

@{
    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>

请注意ViewBagViewData&amp;使用@model指令的强类型视图模型是更优选的会话变量方式,可以将模型值传递到视图页面。

实例:.NET Fiddle Demo