Asp.net mvc 会话值不正确
我有2个表,用户和角色详细信息 和 我想存储RolesDetail中的会话[“role”],但存储时的值为System.Data.Entity.DynamicProxies 我想使用联接表中的值存储会话Asp.net mvc 会话值不正确,asp.net-mvc,Asp.net Mvc,我有2个表,用户和角色详细信息 和 我想存储RolesDetail中的会话[“role”],但存储时的值为System.Data.Entity.DynamicProxies 我想使用联接表中的值存储会话 public ActionResult Login(User u) { var user = db.Users.SingleOrDefault(a => a.Username == u.Username && a.Password == u.Pass
public ActionResult Login(User u)
{
var user = db.Users.SingleOrDefault(a => a.Username == u.Username && a.Password == u.Password);
if (this.IsCaptchaValid("Captcha Is Not Valid !!"))
{
if (user != null)
{
Session["role"] = user.RolesDetail.Roles;
Session["user"] = user.Username;
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", "Username or Password is Wrong !!");
}
}
ViewBag.ErrMessage = "Error: Captcha Is Not Valid !!";
return View();
}
会话[“user”]工作正常
user.Username
当然是一个字符串并成功存储,因此我想知道在存储到会话变量.user.RolesDetail.Roles之前,user.RolesDetail.Roles中存储的是什么类型的数据。这些值类似于“管理员”、“成员”,ETCI会话中存储的值是否变成类型名称(System.Data.Entity.DynamicProxies
…)而不是角色名称的文本?您是否可以显示模型代码以检查角色详细信息由哪种类型组成?从临时代码分析中,SingleOrDefault
根据给定条件返回singleUser
实体,然后,user.RolesDetail.Roles
可能会返回多个角色名称的集合,而不是像user.Username
那样返回一个字符串,因此,user.RolesDetail.Roles
可能会在会话中将Roles
存储为类型名称,而不是它们的值。解决方法:我只添加了“.ToString()”。反正是Thx