2014-10-29 70 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