【发布时间】:2019-04-03 08:23:02
【问题描述】:
我试图从会话 UserId 中获取当前用户,但出现此错误。 '无法将'System.Int32'类型的对象转换为'Trinity.Models.tblUser'类型。'
我在哪里创建会话 ID:
[HttpPost]
public ActionResult Authorise(tblUser user)
{
using (var db = new TrinityEntities())
{
var userEmail = db.tblUsers.FirstOrDefault(x => x.Email == user.Email);
var userPassword = db.tblUsers.FirstOrDefault(y => y.Password == user.Password);
//check login incorrect
if (userEmail == null || userPassword == null)
{
ViewBag.LoginIncorrect = "E-mail or Password not correct";
return View("Index", user);
}
else
{
Session["UserID"] = userEmail.Id;
return RedirectToAction("Index", "Home");
}
}
}
我得到错误的地方:
public ActionResult Index()
{
if (Session["UserID"] == null)
{
return Redirect("/");
}
var currentUser = (Models.tblUser) Session["UserID"];
using (var db = new Models.ChatContext())
{
ViewBag.allUsers = db.Users.Where(u => u.FirstName != currentUser.FirstName).ToList();
}
ViewBag.currentUser = currentUser;
return View();
}
【问题讨论】:
-
所以你输入了一个
int,你希望它在另一边显示为tblUser? -
我正在尝试获取当前用户的 UserId,以使他不显示为可能与之聊天的人。
-
我认为你没有理解我的评论。
-
“所以你输入一个 int 并且你期望它作为一个 tblUser 出来” 我希望它通过 Sessions UserID @PatrickHofman 来获取用户
-
但是你输入了一个数字。
标签: c# asp.net sql-server asp.net-mvc