我在ASP.Net(c#)中开发一个项目。我的项目定义是在线旅行预订系统。会话状态的问题
在我的项目中有一个座位选择模块。当我使用复选框为特定路线选择特定座位时,我会为所选座位创建一个会话,以便如果我选择相同的路线,则不应显示所选座位。
我面临的问题是当我选择不同的路线时,我得到了一个我以前没有选择过的选定座位。
这是紧急的。任何人都可以帮我解决这个问题吗?
谢谢。
我在ASP.Net(c#)中开发一个项目。我的项目定义是在线旅行预订系统。会话状态的问题
在我的项目中有一个座位选择模块。当我使用复选框为特定路线选择特定座位时,我会为所选座位创建一个会话,以便如果我选择相同的路线,则不应显示所选座位。
我面临的问题是当我选择不同的路线时,我得到了一个我以前没有选择过的选定座位。
这是紧急的。任何人都可以帮我解决这个问题吗?
谢谢。
您需要将座位占用绑定到每条路线 - 您可以使用或定义特殊的数据类型结构来保存此信息。您可以创建自己的结构或数组,以保存每条路线占用的每个座位的信息。您可以将此数据结构存储到会话中,并在需要时使用它。无论何时新座位被占用或预占座位被释放,您都需要更新会话中的数据结构。
你也可以使用数据库来存储我认为是更好的选择的信息。
的字典可能会为您的应用程序
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]);
}
基本上,你可以在会话中存储的字典对象与每个路由一个条目。每个会话都是特定用户特定的,所以这应该就足够了。
虽然如果您希望在访问之间记住选择内容,您可能需要将其存储在数据库中。