使用Ajax时,服务器以500(内部服务器错误)的状态响应

使用Ajax时,服务器以500(内部服务器错误)的状态响应,ajax,asp.net-mvc,json,Ajax,Asp.net Mvc,Json,你好,我有一个ajax电话: $.ajax({ url: "/Orders/CheckIfExists", type: "GET", contentType: "application/json; charset=utf-8", data: { catalogNumber: viewModel.catalogNumber, quantity: viewModel.quantity

你好,我有一个ajax电话:

 $.ajax({
        url: "/Orders/CheckIfExists",
        type: "GET",
        contentType: "application/json; charset=utf-8",
        data: {
            catalogNumber: viewModel.catalogNumber,
            quantity: viewModel.quantity
        },
        error: function (data) {
            alert("wystąpił nieokreślony błąd " + data);
        },
        success: function (data) {
            if(data.ok)
            {
                alert(data.quantity)
            }
        }
    })
});
以下是控制器方法:

public JsonResult CheckIfExists(string catalogNumber, int quantity)
    {
        List<Expression<Func<DeviceInstance, bool>>> where = new List<Expression<Func<DeviceInstance, bool>>>();
        where.Add(w=>w.DeviceUsage.UserId==1);
        where.Add(w => w.Project == null);
        where.Add(w => w.Device.CatalogNo == catalogNumber);
        var result = unitOfWork.deviceInstanceRepository.Get(where)
          .GroupBy(w => new
          {
              DeviceId = w.DeviceId,
              CatalogName = w.Device.CatalogNo,
          })
          .Select(s => new
          {
              Quantity = s.Sum(x => x.Quantity),
          }).First();
        if (result.Quantity >= quantity)
        {
            return Json(new { ok = true, quantity = result.Quantity});

        }
        return Json(new { ok = false });
    }
public JsonResult CheckIfExists(字符串catalogNumber,int数量)
{
列表,其中=新列表();
其中.Add(w=>w.DeviceUsage.UserId==1);
其中.Add(w=>w.Project==null);
其中.Add(w=>w.Device.CatalogNo==catalogNumber);
var result=unitOfWork.deviceInstanceRepository.Get(其中)
.GroupBy(w=>new
{
DeviceId=w.DeviceId,
CatalogName=w.Device.CatalogNo,
})
。选择(s=>new
{
数量=s.总和(x=>x.数量),
}).First();
如果(result.Quantity>=数量)
{
返回Json(new{ok=true,quantity=result.quantity});
}
返回Json(新的{ok=false});
}
但我总是得到内部错误。 通过方法接收数据,所有计算均正常。我编写返回JSON,如示例所示。
我哪里出错了?

默认情况下,ASP.NET MVC拒绝ajax
GET
请求,您必须通过显式设置为
AllowGet
来允许它:

return Json(new { ok = true, quantity = result.Quantity},
    JsonRequestBehavior.AllowGet);