2012-03-10 3 views
1

와 같은 기능으로 Ajax.ActionLink를 교체 이제우리는이 같은 Ajax 호출 할 수있는 asp.net의 MVC와 jQuery를

<a data-ajax="true" data-ajax-begin="fctTabLoading" data-ajax-complete="fctTabLoaded" data-ajax-mode="replace" data-ajax-update="#main-content" href="/MyController/MyAction/19">my link text</a> 

를 I jQuery에서 동일한 아약스 호출을 실행하고 싶습니다. 진행 방법을 모르겠습니다!

    $.ajax({ 
         type: "Post", 
         url: myURL, 
         begin: fctTabLoading, 
         complete: fctTabLoaded, 
         mode: "replace", 
         update: "#main-content", 
         cache: false, 
         success: function() { alert('success'); } 
        }); 

내가 '모드'와 '업데이트는'인식되지 않기 때문에 위 아약스 스크립트가 작동하지 않습니다 알고

내가 좋아하는 일을하고 싶습니다. 그래서 나는 막혔다.

그것은 미친 :(나 드라이브

내가 처음에만 특정 사업부를 새로 고침하기 위해 AJAX 호출을 수행 한 후 사용자의 확인을 할 수있는 JQuery와 대화 상자를 표시해야하기 때문에 나는?를 MVC ActionLink를 사용할 수없는 이유 내 페이지.

어떤 도움도 대단히 감사합니다.

감사합니다.

아시다시피

답변

0

에서, Ajax.ActionLink는 아약스 링크를 실행 jquery.unobtrusive-은 ajax.js를 사용합니다.

이 파일을 보면 이벤트 처리기가 jquery의 실시간 이벤트 바인더를 사용하고 있음을 알 수 있습니다. 이 메소드는 이벤트 리스너를 문서 객체에 바인딩합니다.

function confirmDialog() { 
    $('#YOUR_DIALOG').dialog(
     { buttons: { "Ok": function() { return true; }, 
        { "Cancel": function() {return false;} 
     } 
    }); 

}

:

$('#YOUR_ELEMENT').click(function() { 
    var confirmed = confirm("CONFIRM_MESSAGE"); 
    if (!confirmed) { 
     return false; 
    } 
    return true; 
}); 

jQuery를 대화 상자를 사용하려면 다음을 수행 할 수 있습니다 :이 이벤트가 트리거되기 전에 확인하고 싶어한다면, 당신은 다음과 같은 요소에 직접 바인딩 할 수 있습니다

그리고 나서 confirmDialog()에 이전 함수에서 확인을 설정합니다. *** 대화 상자 옵션이 원하는 내용이 아닐 수도 있지만 이것이 도움이 될 것입니다.

+0

감사합니다. Brian. 내가 확인 자바 스크립트에 의해 제공되는 못생긴 팝업을 사용하고 싶지 않아요. 나는 jquery 대화 상자를 사용하는 것을 선호한다. 그래서 jQuery에서 내 아약스 호출을해야한다. 어떤 경우에 해결책이 가능한가? – Bronzato

+0

jquery의 대화 상자를 실제로 사용한 적이 없으므로 편집 된 답변은 몇 분 동안 설명서를보고 기준으로 삼았습니다. –

+0

불행히도 (jquery 대화 상자 호출에 대한) 사용자 정의 함수로 javascript 확인 ​​기능을 간단하게 대체 할 수 없습니다. 다른 누군가가 나를 도울 수 있기를 바랍니다. 어쨌든 고마워. – Bronzato

2
당신은 정상 링크와 아약스 링크를 대체하여 시작할 수

:

<a href="/MyController/MyAction/12345" id="mylink">my link text</a> 

후 별도의 JS 파일이 겸손을 AJAXify에 : : 다음과 같은 마크 업을 생성합니다

@Html.ActionLink(
    "my link text",     // linkText 
    "MyAction",      // actionName 
    "MyController",     // controllerName 
    new { id = Model.RequestID },  // routeValues 
    new { id = "mylink" }    // htmlAttributes 
) 

$(function() { 
    $('#mylink').click(function() { 
     $.ajax({ 
      url: this.href, 
      type: 'POST', 
      beforeSend: fctTabLoading, // corresponds to your OnBegin callback 
      complete: fctTabLoaded,  // corresponds to your OnComplete callback 
      success: function(result) { 
       $('#main-content').html(result); 
      } 
     }); 

     return false; 
    }); 
}); 
관련 문제