2009-11-15 5 views
0

사용자가 정렬 할 수있는 작업 목록이 있습니다. 현재 한 컨테이너에서 다른 컨테이너로 드래그/드롭하는 중입니다.내 컨트롤러에서 jQuery 아약스 게시 메서드가 호출되지 않습니다.

드래그/드롭이 작동하는 동안, 나는 jQuery 포스트를 실행할 수 없습니다. 여기서 무슨 일이 일어나고 있는지 확실하지 않습니다.

[AcceptVerbs(HttpVerbs.Post), Authorize] 
    public ActionResult EditStage() 
    { 
     Task task = this.TaskRepository.GetTask(
      int.Parse(this.Request.QueryString["taskId"])); 
     Stage stage = this.StageRepository.GetStage(
      this.Request.QueryString["stageId"]); 

     task.StageId = stage.StageId; 

     this.TaskCommentRepository.Save(); 

     return this.Content(string.Format("The stage for Task {0} has been changed to {1}", task.TaskId, stage.Name)); 
    } 

사용자는 내가 내려다 오전 무엇인지에 그냥 궁금, 권한 :

<script type="text/javascript"> 
    $(function() { 
     $(".sortable").sortable({ 
      connectWith: '.connectedSortable', 
      cursor: 'move', 
      items: '.queueItem', 
      receive: function(event, ui) { 
       //Extract column num from current div id 
       var stageId = $(this).attr("id").replace("stage", ""); 
       var taskId = $(ui.item).attr("id").replace("task", ""); 
       $.ajax({ 
        url: '/Task/EditStage', 
        type: 'POST', 
        data: { 'taskId': taskId, 'stageId': stageId } 
       }); 
      } 
     }).disableSelection(); 
    });  
</script> 

내 컨트롤러 액션 메소드

은 다음과 같습니다 여기

내가 현재 내 jQuery를 위해 함께 일하고 무엇인가 ? 앞으로 어떻게 전화가 끊어 졌는지 확인하기 위해 이것을 테스트 할 수 있습니까?

미리 감사드립니다.

+0

FireBug는 무엇이라고 말합니까? 요청이 전송 되었습니까? –

답변

4

querystring에서 taskID와 stageID를 가져 오려고하지만 POST로 보내고 있습니다. 즉, 메시지 본문에 있습니다. 메소드 서명을 다음으로 변경하십시오.

public ActionResult EditStage(int taskID, intstageID) 

대신 액세스하십시오.

또는 JQuery AJAX 메소드를 GET으로 변경하고 가져 오기를 허용하는 동작을 변경하십시오.

또는, URL 등으로 값을 추가,

var url = '/Task/EditStage?taskID=' + taskID + "&instageID=" + instaveID; 

없이 데이터와 AJAX 호출에서 해당 URL 변수를 사용합니다.

+0

Josh가 언급 한 첫 번째 방법을 사용하여 메서드 서명을 변경하고 변수를 사용합니다. – Chaddeus

관련 문제