3

我有一个对 web-api 页面 ( /api/attendances ) 的 ajax 调用。它插入一条记录,并返回 OK() 作为结果。

问题:插入正确完成,将返回 OK,但不是 .done()/success() 函数,而是调用 .Fail()/error() 。

我尝试了两种方式($.ajax() 和 $.Post()),它们都得到了相同的结果

1)

  $.post("/api/attendances", { gid: button.attr("data-gid") })
          .done(function () {
               alert("success...");
              })
          .fail(function () {
              alert("Something failed...");
              });

服务器端代码:

2)

 public class AttendancesController : ApiController
  {

    //.........other initialize , ... codes in controller

   [HttpPost]
    public IHttpActionResult Attend(AttendDto dto)
    {
        //.....check for duplicate , ...

        var attendanceModel = new Attendance
        {
            AttendeeId = userId,
            gId = dto.gId
        };
        _context.Attendances.Add(attendanceModel);
        _context.SaveChanges();
        return Ok();
    }
}

3) 定义 DTO

  public class AttendDto
    {
        public int  gId { get; set; }
    }

任何帮助,将不胜感激。

4

1 回答 1

0

我认为它在 SaveChanges 方法上引发错误。您可以通过注释 Save 调用来验证,然后检查 api 是否进入失败函数。

于 2016-08-08T10:09:25.450 回答