2012-05-10 3 views
-1

대형 모델을 사용하는 앱이 있습니다. 모든 데이터를 수집하려면 5 개의보기 페이지가 필요합니다. 보기 페이지간에 세션을 유지하고 있습니다. 때로는 세션이 프로세스 중간에 비활성 후 종료됩니다. 이 경우 사용자를 홈 페이지로 다시 푸시하려고합니다.모델에서 작업으로 리디렉션하는 방법

 private MemberRegistration MemberRegistration { 
     get { 
      if (HttpContext.Current.Session["RegisterModel_MemberRegistration"] == null) 
      { 
       return null; 
       >>>> I want to go back the home page here <<<< 
      } 
      return (MemberRegistration)HttpContext.Current.Session["RegisterModel_MemberRegistration"]; 
     } 
     set { 
      HttpContext.Current.Session["RegisterModel_MemberRegistration"] = value; 
     } 
    } 
    public string FirstName { 
     get { 
      return MemberRegistration.FirstName; 
     } 
     set { 
      MemberRegistration.FirstName = value; 
     } 
    } 

내 문제는 이것이다 : 여기

내 모델의 일부입니다. 모델 바인딩은 사용자가 "다음"버튼을 클릭 할 때 시작됩니다. 모델 바인딩은 [HTTPPost] 컨트롤러 동작 이전에 발생합니다. 세션이 만료되면 "return null"행에 도달했습니다. 나는 그때 바로 홈페이지로 사용자를 보내고 싶다.

두 번째 질문 - 세션을 사용하는 것보다 더 좋은 방법이 있습니까? (부분적으로 데이터베이스에 등록하는 것을 제안하지 마라. 나는 데이터베이스에 부분적으로 기록하는 것에서 발생하는 문제보다 세션에서 유지하는 데 문제가 있다고 생각한다.)

감사합니다. 흠뻑!

+0

당신은 그렇지 않습니다. 그것은 컨트롤러에게 의미있는 것을 돌려 주어야합니다. – asawyer

+0

Session 대신 사용할 수 있습니다. 부분 등록은 데이터베이스에 보관하십시오. –

+0

컨트롤러에 연결하지 못했습니다. MemberRegistration을 사용할 수 없기 때문에 MemberRegistion.FirstName을 사용할 수 없을 때 바인딩이 FirstName에 대한 가져 오기/설정에 도달 할 때 프로그램 오류가 발생합니다. 계속 바인딩 프로세스를 중지해야합니다 ... – Cary

답변

0

다른 방법 : jQuery UI를 사용하고 탭을 만듭니다. 5 개의보기 페이지 대신 단일보기 페이지에서 5 개의 탭을 사용하십시오. 모델을 조각으로 나눌 필요가 없습니다.

http://jqueryui.com/demos/tabs/

관련 문제