如何获取用于登录用户ASP.NET MVC的项目

时间:2018-12-16 16:58:16

标签: asp.net-mvc

我正在尝试显示从数据库中登录用户的预订,但是它显示了来自所有用户的所有数据。这是原始代码:

// GET: Bookings
public ActionResult Index()
{
   var bookings = db.Bookings.Include(b => b.Room).Include(b => b.Register);
   return View(bookings.ToList());
}

这是我尝试过的内容,但输出显示错误,

public ActionResult Index()
{
   var bookings = db.Bookings.Include(b => b.Room).Include(b => b.Register == Session["id"]);
   return View(bookings.ToList());
}

这是数据库中的用户表,因此,如果我以1号用户身份登录,则预订数据应仅显示1号customerID,但是问题是,该数据显示了所有用户预订。

enter image description here

这是预订数据库的图像, enter image description here

这是登录代码:

[HttpPost]
public ActionResult Login(Register login)
{
    using (HotelBookingEntities db = new HotelBookingEntities())
    {
        var userDetails = db.Registers.Where(x => x.email == login.email && x.password == login.password).FirstOrDefault();

        if (userDetails == null)
        {
            ViewBag.WrongMessage = "Wrong username or password";
            return View("Login", login);
        }
        else
        {
           Session["id"] = userDetails.id;
           Session["username"] = userDetails.username;
           return RedirectToAction("Index", "Rooms");
        }
    }      
}

1 个答案:

答案 0 :(得分:2)

尝试如下:

public ActionResult Index()
{
    int userId = Convert.ToInt32(Session["id"]);
    var bookings = db.Bookings.Where.Include(b => b.Room).Where(b => b.CustomerID == userId).ToList();

    return View(bookings);
}