Проблема состояния сеанса не сохраняется - PullRequest
1 голос
/ 26 октября 2009

Я занимаюсь разработкой проекта в ASP.Net (C #). Мой проект определен как система онлайн-бронирования путешествий.

В моем проекте есть модуль выбора мест для сидения. Когда я выбираю определенное место для определенного маршрута с помощью флажка, я создаю сеанс для выбранного места, чтобы при выборе одного и того же маршрута выбранные места не отображались.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я выбираю другой маршрут, я получаю выбранное место, которое я не выбрал ранее.

Ответы [ 2 ]

1 голос
/ 26 октября 2009

Словарь может хорошо работать для вашего приложения
http://msdn.microsoft.com/en-us/library/xfhwa508.aspx

В псевдокоде:

//  Read the selected seats and store them
OnCheckChanged( ... )
{
   Dictionary<Route,Seat> reservedSeats = Session["reservedSeats"] as Dictionary<Route,Seat>;
   reservedSeats[Current Route] = Selected Seat;
   Session["reservedSeats"] = reservedSeats;
}

//  Show the selected seats when they come to a specific route
OnLoad(...)
{
   Dictionary<Route,Seat> reservedSeats = Session["reservedSeats"] as Dictionary<Route,Seat>;
   SetSeatSelection( reservedSeats[Current Route] );
}

В принципе, вы можете хранить объект словаря в сеансе с одной записью для каждого маршрута. Каждый сеанс является специфическим для конкретного пользователя, поэтому этого должно быть достаточно.

Хотя вы можете просто сохранить его в базе данных, если хотите, чтобы выбор запоминался между посещениями и т. Д.

1 голос
/ 26 октября 2009

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

Вы также можете использовать базу данных для хранения информации, которая, я думаю, будет лучшим вариантом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...