2013-07-29 2 views
1

좋아 녀석 전에 현재 페이지 변경을 유지,이 바보 같은 질문이있을 수 있습니다, 나는 아마도 문제가 전직에 대한이 actionlink

아니라, 모든 관련 문제를 검색 할 수 없습니다. 나는 드라이버 컨트롤러 인덱스에서이

  • @Html.ActionLink("Driver", "Index", "Driver")
  • @Html.ActionLink("Vehicle", "Index", "Vehicle")
  • 처럼 내 MVC 4 응용 프로그램의 탐색 메뉴가 나는, 사용자가 제출없이 변경 뭔가를 만들 데이터베이스에서 모델을 가지고 있고보기에 모든 것을 표시 받기 메뉴 actionlink를 클릭하여 Vehicle 페이지로 이동 한 다음 Driver 페이지로 다시 돌아갑니다.

    내가 원하는 것은 드라이버 인덱스 페이지입니다. 마지막 변경 사항을 유지하고 표시 할 수 있지만 드라이버 제어 인덱스에서 마지막 변경 사항을 tempdata에 저장하지 않기 때문에 데이터베이스에서 모든 것을 가져와야합니다.

    어떤 아이디어가 있습니까? 대단히 감사합니다.

    업데이트 : 감사합니다. 필립은 대단히 답을 찾았지만 조금 문제가 있습니다. ActionLink가 $ (window) .unload보다 먼저 발생하기 때문에 jQuery에서 서버에 대한 게시를 싫어할 경우 포스트 백이 방향을 잃게됩니다.

    +0

    "ASP.NET MVC"는 단순히 "MVC"로 언급하지 마십시오. 하나는 프레임 워크이고 다른 하나는 언어에 독립적 인 디자인 패턴입니다. IE 호출 - "인터넷" –

    답변

    0

    나는 onbeforeunload 이벤트를 잡고 사용자가 모델을 수정했는지 확인하려고합니다.

    변경 사항이있는 경우 브라우저 local or session storage (HTML5)에 저장하거나 서버 (웹 서비스)에 게시 할 수 있습니다.

    페이지가 다시로드되면 저장소를 확인하거나 서버에 모델을 요청해야합니다.

    (function ($) { 
        var isDirty = false; 
    
        $(function(){ 
         // check local/session storage OR fetch data from server. 
        }); 
    
        $(':input').change(function() { 
         isDirty = true; 
        }); 
    
        $(window).unload(function() { 
         if (isDirty) { 
          // store changes in local/session storage OR post them to the server. 
         } 
        }); 
    }(jQuery)); 
    
    +0

    필립, 대단히 감사합니다. –