Как получить предметы для авторизованного пользователя ASP.NET MVC - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь показать бронирование вошедшего в систему пользователя из базы данных, но в нем отображаются все данные от всех пользователей.это оригинальный код:

// 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, но проблема в том, что данные показывают все пользовательские бронирования.

enter image description here

Вот изображение бронирования db, 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 голосов
/ 16 декабря 2018

Попробуйте следующим образом:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...