2016-12-16 82 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.'); 
     } 
    });