2009-10-26 5 views
1

저는 ASP.Net (C#)에서 프로젝트를 개발 중입니다. 내 프로젝트 정의는 온라인 여행 예약 시스템입니다.세션 상태 문제

내 프로젝트에는 좌석 선택 모듈이 있습니다. 체크 박스를 사용하여 특정 노선에 대한 특정 좌석을 선택하면 선택한 좌석에 대한 세션을 만들어 동일한 경로를 선택하면 선택한 좌석이 표시되지 않아야합니다.

내가 직면 한 문제는 내가 다른 경로를 선택할 때 내가 이전에 선택하지 않은 엄선 된 좌석을 얻는 것입니다.

이것은 급한 일입니다. 어느 누구도이 문제를 해결할 수 있습니까?

감사합니다.

답변

1

좌석 점유율을 각 경로에 바인딩해야합니다. 특수한 데이터 유형 구조를 사용하거나 정의하여이 정보를 보유 할 수 있습니다. 각 경로에 의해 점유 된 각 좌석의 정보를 보유하고있는 구조체 또는 배열을 직접 만들 수 있습니다. 이 데이터 구조를 세션에 저장하여 필요할 때 사용할 수 있습니다. 새로운 좌석이 점유되거나 미리 점유 된 좌석이 석방 될 때마다 세션에서 데이터 구조를 업데이트해야합니다.

데이터베이스를 사용하여 더 나은 옵션이라고 생각되는 정보를 저장할 수도 있습니다.

1

사전 적은 psuedocode에서 응용 프로그램
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]); 
} 

기본적으로, 각 경로에 대한 하나 개의 항목으로 세션에서 사전 객체를 저장할 수 있습니다. 각 세션은 특정 사용자에게 한정되어 있으므로 충분해야합니다.

방문 중에 선택 사항을 기억하려면 데이터베이스에 저장하는 것이 좋습니다.