2014-10-29 73 views
0

我有一個@ Ajax.ActionLink,我用它來刪除一個記錄形式我的數據庫。當我點擊鏈接時,我的頁面會要求確認,刪除課程並刷新包含記錄表的div。我想在jQuery中使用AJAX,而不是使用操作鏈接。當我點擊我的刪除按鈕,我得到我的確認框,點擊確定,然後沒有任何反應。我知道我的jquery函數正在從所選行中獲取正確的值,因爲我已將它們輸出以確保。我無法弄清楚爲什麼Ajax從不運行,但操作鏈接正常工作。下面是我的代碼和我的控制器AJAX Actionlink的作品,但我的AJAX在jQuery不? (ASP.NET MVC 5)

控制器:

public PartialViewResult deleteCourses(string stuId, string courseAbNum) 
    { 
     KuPlanEntities db = new KuPlanEntities(); 
      var deleteCourse = (from course in db.COURSE_TAKEN 
           where course.courseAbNum == courseAbNum && course.Id == stuId 
           select course); 

       foreach (var course in deleteCourse) 
       { 
        db.COURSE_TAKEN.Remove(course); 
        db.SaveChanges(); 
       } 


      var stuCourses = (from studCourse in db.COURSE_TAKEN 
           join course in db.COURSEs on studCourse.courseAbNum equals course.courseAbNum 
           where studCourse.Id == stuId 
           select new courseTakenView { Id = studCourse.Id, courseAbNum = studCourse.courseAbNum, status = studCourse.status, grade = studCourse.grade, courseDesc = course.courseDesc, credits = course.credits, rowNum = studCourse.rowNum }); 

      var model = new courseListViewModel 
      { 
       userId = stuId, 
       courseTaken = stuCourses 
      }; 

     return PartialView("~/Views/ManageStudentCourses/listCourseRefresh.cshtml",model); 
    } 

動作鏈接:

@Ajax.ActionLink("Delete", "deleteCourses", new { stuId = Model.userId, courseAbNum = @course.courseAbNum }, new AjaxOptions { UpdateTargetId = "refreshList", Confirm = ("Are you sure you want to delete this course?") }) 

的jQuery:

$(document).ready(function() { 
$('.deleteCourseBtn').click(function() { 
    if(confirm("Are you sure you want to delete this course?")) 
    { 
     var courseAbNum = $(this).attr('data-id'); 
     var stuId = $('#userId').val(); 
     $.ajax({ 
      type: 'POST', 
      url: '/ManageStudentCourses/deleteCourses', 
      data: { stuId:stuId, courseAbNum:courseAbNum }, 
      dataType: 'html' 
      .success(function (result) { 
       $('#refreshList').html(result); 
      }) 
     }); 

    } 
    else 
    { 
     return false; 
    } 
}) 

});

+0

你檢查你的瀏覽器控制檯是否有錯誤或看到請求是否應該看起來像? – 2014-10-29 20:12:00

+0

它表示Uncaught TypeError:undefined不是函數。 「.success(函數(結果){」行突出顯示 – Stc5097 2014-10-29 20:17:03

回答

1

您的語法關閉。您正在嘗試撥打'html'.success(...)。我會這樣做:

$.ajax({ 
     type: 'POST', 
     url: '/ManageStudentCourses/deleteCourses', 
     data: { stuId:stuId, courseAbNum:courseAbNum }, 
     dataType: 'html' 
    }).done(function (result) { 
     $('#refreshList').html(result); 
    }); 
+0

或'})。success(function(data){// do stuff});' – Sebastien 2014-10-29 20:27:37

+0

@Sebastien'jqXHR.success()'不贊成使用jQuery 1.8。 http://api.jquery.com/jQuery.ajax/#jqXHR – 2014-10-29 20:30:00

+0

您的權利.success()被棄用,是.ajax({success:function(data){// do stuff}})也被棄用或者是那些兩個完全不同的我看着你的鏈接,並沒有明確說明兩者是否被棄用 – Sebastien 2014-10-29 20:37:40