2009-07-16 1 views
1

검색에 사용되는 Asp.net MVC 부분 뷰가 있습니다. 결과를 검색하기 위해 Ajax 호출을 수행합니다. 결과가 검색되어 결과 창에 표시되면 사용자는 결과 행 중 하나의 링크를 클릭하여 검색 결과 중 하나를 선택할 수 있습니다. 사용자가 링크를 클릭하여 검색 결과 중 하나를 선택하면 Ajax 게시가 일부 상태를 업데이트하도록 요청합니다. 이 Ajax 호출이 완료되면 다른 페이지로 리디렉션해야하지만 대상 페이지는 사용자가 어느 페이지에 있는지에 따라 다릅니다. 이 검색 부분보기는 여러 페이지에서 호스트되며 각 호스트 페이지마다 경로 재 지정 위치가 달라집니다. 나는 이것을 이해하는 방법을 생각할 수없고, 부분적인 관점을 호스팅 페이지에 (또는 그 반대로) 지나치게 결합하지 않는다.부분 뷰에서 ajax 호출이 완료되면 어떻게 호스트 MVC 페이지에서 javascript를 호출합니까?

다른 옵션은 선택 Ajax 호출이 완료되면 궁극적으로 목표이지만 다른 페이지로 리다이렉트 될 수 있지만 Ajax 호출 내 리디렉션 결과는 삼키지 않을 것이라고 생각하십니까?

또는 호출하는 페이지를 기반으로하는 대상으로 리디렉션 결과를 반환 할 수있는 게시 요청이 발생하는 대신 각 행에 단추 또는 링크가있는 방법이 있습니까?

답변

1

이 작업을 수행하기 위해 일종의 TemplateMethod 패턴을 사용했습니다.

function onActionCompleted() { 
    DoSomethingLocal(); 
    if (typeof DoSomethingInParentPage == 'function') { 
     DoSomethingInParentPage(); 
    } 
} 

이 함수가 존재하고 기능이 있는지 여부를 확인하고,이 경우는 함수를 호출합니다 : 나의 부분에서 나는 자바 스크립트 기능을 추가했습니다. 이 작업을 수행하려면 호스팅 페이지에서 DoSomethingInParentPage 메소드를 구현하여 부분에서 작업이 완료 될 때 일부 작업을 완료하도록 선택할 수 있습니다. 매개 변수 일치를 검사하는 방법을 잘 모르겠지만 적어도 부분적으로 작업이 끝나면 전화를받습니다.

관련 문제