2014-05-23 99 views
5
時迴應

你好,我有一個Ajax調用:服務器500(內部服務器錯誤)的狀態使用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 }); 
    } 

但我一直都想與內部500錯誤。 數據通過方法接收,所有計算都正常。例如,我編寫了返回JSON。 我犯了什麼錯誤?

回答

6

默認情況下,ASP.NET MVC拒絕AJAX請求GET,你必須明確地設置JsonRequestBehaviorAllowGet,使它:

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

感謝的人! ... 我愛你 –

相關問題