2010-05-21 3 views
0

jquery 양식 플러그인 (http://malsup.com/jquery/form/)을 사용하여 백그라운드에서 처리되는 ajax를 통해 파일을 업로드하고 있습니다.AjaxSubmit 파일 업로드 - 응답을 얻으려고 시도합니다.

업로드가 제대로 작동하고 ASP.Net MVC를 사용하여 업로드 파일의 처리 상태를 확인하기 위해 '타이머'설정에 $ (문서) .ready 호출이 포함 된 부분보기를 반환합니다. . 스크립트 블록이 들어있는 부분 뷰를 반환하면 절대로 발사되지 않으므로 업로드 상태를 확인하는 '타이머'가 시작되지 않습니다.

정상적인 $ .post 호출 (업로드하지 않음)을 통해 이렇게하면 html이 DOM에로드 된 후 함수가 올바르게 실행됩니다. AjaxSubmit 함수를 호출하여이 작업을 수행하기 위해 필요한 다른 작업이 있습니까? 코드의

그냥 샘플 비트 :

$('form').live('submit', function() { 
       $(this).ajaxSubmit({     
        success: function (data) {       
         $('#statusDiv').html(data);       
        } 
       });    
       return false; 
      }); 

답변

1

당신의 ASP.Net MVC 부분보기 로딩 루틴 화재 오프 콜백 루틴을 할 수 있습니까? 주 문서의 ready() 처리기에서 .live()을 사용하여 맞춤 이벤트 바인딩을 시청 해 볼 수 있습니다. 그런 다음 부분 뷰 콜백에 .trigger('custom_event')을 입력하십시오. 같은 뭔가 :

$(document).ready(function(){ 
    $('container_for_partial_view').live('custom_event', function(){ 
     set_timer_and_do_stuff() 
    } 
}) 

... 그리고 부분보기가 아약스를 통해로드 될 때 :

이 나는 ​​'청소기'솔루션을 바라고 있지만, 작업 결국
$('container_for_partial_view etc etc').trigger('custom_event') 
+0

. 숨겨진 필드를 사용하여 부분 뷰에서 반환 된 HTML에서 값을 가져와야했지만 작동했습니다. 부분 뷰에 '논리'(자바 스크립트)를 추가하려고했지만 원래로드 된 컨테이너 페이지에서 모두 수행해야합니다. – ncyankee

관련 문제