我在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]);
}
基本上,你可以在會話中存儲的字典對象與每個路由一個條目。每個會話都是特定用戶特定的,所以這應該就足夠了。
雖然如果您希望在訪問之間記住選擇內容,您可能需要將其存儲在數據庫中。