我正在开发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
等特定值?
由于
答案 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>
请注意ViewBag
,ViewData
&amp;使用@model
指令的强类型视图模型是更优选的会话变量方式,可以将模型值传递到视图页面。