2017-02-01 97 views
0

您好我正在開發一個Web應用程序與api的API。我正在做文件上傳模塊。文件上傳完成後,我在返回對象時遇到問題。如何使用angularjs從web api控制器返回數據?

下面是我的API代碼來保存文件相關的數據到數據庫,如果它是succsfull我返回對象。

NCT_FileUpload obj = new NCT_FileUpload(); 
obj.file_path = uploadPath; 
obj.user_id =9; 

entityObject.NCT_FileUpload.Add(obj); 
int result = entityObject.SaveChanges(); 
if (result == 1) 
{ 
    return Request.CreateResponse<NCT_FileUpload>(HttpStatusCode.OK, obj); 
} 
else 
{ 
    return Request.CreateErrorResponse(HttpStatusCode.NotFound, "1"); 
} 

這是我的angularjs代碼。

$scope.uploadFiles = function() { 
    $scope.uploading = true; 
    uploadService.uploadFiles($scope) 
     // then() called when uploadFiles gets back 
     .then(function (data) { 
      // promise fulfilled 
      $scope.uploading = false; 
      if (data === '') { 
       alert("Done!!!") 
       $scope.formdata = new FormData(); 
       $scope.data = []; 
       $scope.countFiles = ''; 
       $scope.$apply; 
      } else { 
       alert("Shit, What happended up there!!! " + data); 
      } 
     }, function (error) { 
      $scope.uploading = false; 
      //Server Error 
      alert("Shit2, What happended up there!!! " + error); 
     } 
    ); 
}; 

下面是angularjs

if (typeof response.data === 'string') { 
    return response.data; 
} else { 
    return $q.reject(response.data); 
} 

在這裏,我想檢查與對象,而不是作爲字符串我的服務代碼。

我能夠保存數據在服務器,如果我把下面的代碼在API控制器我能夠顯示完成。但是我正在返回對象,所以我的數據不會爲空。目前我的錯誤功能正在執行。我想在成功函數中處理從api返回的對象。有沒有辦法做到這一點?任何幫助,將不勝感激。謝謝。

return new HttpResponseMessage(HttpStatusCode.OK) ; 

回答

0

我認爲這裏的問題是通用參數。更改此:

return Request.CreateResponse<NCT_FileUpload>(HttpStatusCode.OK, obj); 

要這樣:

return Request.CreateResponse(HttpStatusCode.OK, obj); 
相關問題