2016-12-16 70 views
0

我无法对控制器操作方法进行ajax调用,该方法返回json对象。 此外,我想要传递整数CheckID给方法。Ajax调用不调用控制器操作方法

任何帮助,高度赞赏。 在此先感谢!

***View*** 

<script type="text/javascript"> 

function showCheckImage(e) { 
    e.preventDefault(); 

    var dataItem = this.dataItem($(e.currentTarget).closest("tr")); 
    var CheckID = dataItem.ID; 

    $.ajax({ 
     url: '@Url.Action("GetDeferredCheckImage", "Customer")', 
     type: 'POST', 
     data: {deferredCheckID: CheckID }, 
     dataType: 'json', 
     contentType: 'application/json; charset=utf-8', 

     success: function(result) { 
      //var imageObj = result; 
      alert('Loaded Image Object!'); 
     }, 
     error: function (result) { 
      alert('Error occurred while loading the image object.'); 
     } 
    }); 
} 

**Controller Method** 

[HttpPost] 
    public JsonResult GetDeferredCheckImage(int deferredCheckID) 
    { 
     try 
     { 
      QCEventLogger.Log($"Gathering deferred check image for check ID: {deferredCheckID}", LogType.Default); 
      var response = new AjaxGetDeferredCheckImageViewModel(deferredCheckID); 
      QCEventLogger.Log($"Result of service call to gather deferred check image. check ID: {deferredCheckID}. Success: {response.Success}", LogType.Default); 

      var DeferredCheckImageObject = response.ImageCheckObject.DeferredCheckImages.FirstOrDefault(); 

      return Json(DeferredCheckImageObject, JsonRequestBehavior.AllowGet); 
     } 
     catch (Exception ex) 
     { 
      var failureResponse = new AjaxGetDeferredCheckImageViewModel() { Success = false }; 
      QCErrorLogger.Log($"Failure trying to gather deferred check image for check ID: {deferredCheckID}", ex); 
      return Json(failureResponse, JsonRequestBehavior.AllowGet);     
     } 
    } 
+0

好...一,你的数据不符合您的内容类型。 –

+0

删除'contentType:'application/json; charset = utf-8',' - (你没有将数据字符串化) –

+0

谢谢。现在正在工作。 – ranp

回答

0

你的Ajax调用可能是这样的,

$.ajax({ 
     url: '@Url.Action("GetDeferredCheckImage", "Customer")', 
     type: 'POST', 
     data: { deferredCheckID: CheckID }, 
     dataType: 'json', 
     success: function (result) { 
      //var imageObj = result; 
      alert('Loaded Image Object!'); 
     }, 
     error: function (result) { 
      alert('Error occurred while loading the image object.'); 
     } 
    });