2016-03-01 61 views
0

我有一個c#web api方法,它返回的整數值爲HttpResponseMessage,想要使用$ resource訪問AngularJs中的響應,How?

的Web API:

[HttpPut] 
     [Route("DeleteFile")] 
     public HttpResponseMessage DeleteFile(int cabinetFileID) 
     { 
      var fileName = cabinetDataAccess.GetFilePath(cabinetFileID);     
       var returnVal = cabinetDataAccess.DeleteCabinetFile(cabinetFileID, UserEmail); 
       return Request.CreateResponse(HttpStatusCode.OK, returnVal);     

     } 

服務:

(function() { 
    'use strict'; 

    angular 
     .module('data') 
     .factory('cabinetService', cabinetService); 

    cabinetService.$inject = ['$resource', 'serviceBase']; 

    function cabinetService($resource, serviceBase) { 
      var deleteCabinetFileResource = $resource(serviceBase + '/api/Cabinet/DeleteFile?cabinetFileID=:cabinetFileID',null,{'update':{method:'PUT'}}); 

     return {     
      deleteCabinetFile: deleteCabinetFile 
     }; 

     function deleteCabinetFile(cabinetFileID){ 
      return deleteCabinetFileResource 
       .update({cabinetFileID:cabinetFileID},null) 
       .$promise; 
     } 
    } 
}()); 

控制器:

function deleteThumbnail(cabinetFileID) 
     { 
      cabinetService 
      .deleteCabinetFile(cabinetFileID) 
      .then(function (data) { 
       //How do i Access my return value here ??? 
       //Something like 
       if(data.returnVal === -1) 
       //do something 
      }) 
      .catch(function (err) { 
       growl.err('Unable to delete file, Please try later !', {ttl: 20000}); 
      }) 
     } 

此代碼讓我的反應,我怎麼需要訪問從返回值數據?

+0

當你執行你的代碼,哪些包含數據到底是什麼? – Aliz

+0

沒有它沒有這樣的工作。數據具有以下信息:資源{$ promise:r,$ resolved:true} $ promise:r_bitField:33554433_fulfillmentHandler0:(data)_promise0:undefined_receiver0:undefined_rejectionHandler0:Resource__proto__:r $ resolved:true__proto__:Resource – Srini

+0

也許此鏈接可以幫助您:http://stackoverflow.com/questions/29071785/how-to-retreive-httpresponsemessage-filename-in-javascript – Aliz

回答

0

基於https://stackoverflow.com/users/5535245/georgeawg評論改變我的c#代碼如下返回一個Json對象,一切運作良好。

[HttpPut] 
      [Route("DeleteFile")] 
      public JObject DeleteFile(int cabinetFileID) 
      { 
       var fileName = cabinetDataAccess.GetFilePath(cabinetFileID);     
        var returnVal = cabinetDataAccess.DeleteCabinetFile(cabinetFileID, UserEmail); 
var jsonString = Json(new JavaScriptSerializer().Serialize(new { returnVal })); 
       return JObject.Parse(jsonString.Content);  
      } 

在我AngularJs控制器,我能夠檢查if(data.returnVal === -1)

相關問題