Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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
Asp.net mvc 会话值不正确_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 会话值不正确

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

我有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.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
根据给定条件返回single
User
实体,然后,
user.RolesDetail.Roles
可能会返回多个角色名称的集合,而不是像
user.Username
那样返回一个字符串,因此,
user.RolesDetail.Roles
可能会在会话中将
Roles
存储为类型名称,而不是它们的值。解决方法:我只添加了“.ToString()”。反正是Thx