2014-10-23 5 views
0

새로운 고객을 생성하기 위해 jQuery Dialog를 사용하고 있습니다. 처음 대화 상자를 열면 Controller Action 메서드가 호출되어 새로운 Customer 모델이 만들어집니다. 대화 상자의 후속로드는 Action 메서드를 호출하지 않습니다.jQuery에서 부분 뷰로드 대화 상자 여러 번

대화 상자를 닫으면 올바르게 처리하거나로드시 다시 작성해야합니다. 내가 시도하는 것은 무엇이든 작동하지 않습니다.

<script type="text/javascript"> 
    $(function() { 
     $('#dialog').dialog({ 
      autoOpen: false, 
      width: 400, 
      resizable: false, 
      title: 'New Customer', 
      modal: true, 
      open: function(event, ui) { 
       $(this).load("@Url.Action("CreateCustomerPartial")"); 
      }, 
      buttons: { 
       "Close": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

     $('#my-button').click(function() { 
      $('#dialog').dialog('open'); 
     }); 
    }); 
</script> 
<div id="dialog" title="Create Customer" style="overflow: hidden;"> 
+0

:

비활성화 아약스 캐싱은 속임수를 썼는지? –

+0

액션 메서드 (MVC) - $ (this) .load ("/ MyApplication/MyController/MyAction")의 url 경로를 결정합니다. – pfeds

+1

클라이언트 쪽에서 보면 코드가 정상적으로 보입니다. 서버가 응답하는 경우/방법을 확인하기 위해 'complete'콜백을 추가하십시오. [.load()] (http://api.jquery.com)의 문서에서 "Ajax 요청에 오류가 발생하면 통지 표시"를 참조하십시오. /하중/). –

답변

0

수정 - IE에서 ajax 요청을 캐싱하는 데 문제가 있었지만 jQuery Dialog와는 아무런 관련이 없습니다. ;`서비스하는 페이지처럼`$ (이) .load ('@의 Url.Action ("CreateCustomerPartial은") ") 무엇을

$.ajaxSetup({ cache: false });

+1

'$ .ajaxSetup ({cache : false})'는 코드에서 다른 Ajax 요청에 영향을 미치기 때문에 다소 과감하다. 옵션으로'cache : false'를 지정할 수있는 낮은 수준의'$ .ajax()'를 사용할 것을 권합니다. '$ (this)'에 응답 삽입을 관리해야하지만 어렵지 않습니다. –

+0

팁이 좋습니다. 당신의 도움을 주셔서 감사합니다. – pfeds

관련 문제