2009-10-26 186 views
1

我在ASP.Net(c#)中開發一個項目。我的項目定義是在線旅行預訂系統。會話狀態的問題

在我的項目中有一個座位選擇模塊。當我使用複選框爲特定路線選擇特定座位時,我會爲所選座位創建一個會話,以便如果我選擇相同的路線,則不應顯示所選座位。

我面臨的問題是當我選擇不同的路線時,我得到了一個我以前沒有選擇過的選定座位。

這是緊急的。任何人都可以幫我解決這個問題嗎?

謝謝。

回答

1

您需要將座位佔用綁定到每條路線 - 您可以使用或定義特殊的數據類型結構來保存此信息。您可以創建自己的結構或數組,以保存每條路線佔用的每個座位的信息。您可以將此數據結構存儲到會話中,並在需要時使用它。無論何時新座位被佔用或預佔座位被釋放,您都需要更新會話中的數據結構。

你也可以使用數據庫來存儲我認爲是更好的選擇的信息。

1

的字典可能會爲您的應用程序
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]); 
} 

基本上,你可以在會話中存儲的字典對象與每個路由一個條目。每個會話都是特定用戶特定的,所以這應該就足夠了。

雖然如果您希望在訪問之間記住選擇內容,您可能需要將其存儲在數據庫中。