使用Ajax时,服务器以500(内部服务器错误)的状态响应
你好,我有一个ajax电话:使用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({
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);