您好我正在开发一个带有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 :(得分:0)
我认为这里的问题是通用参数。改变这个:
return Request.CreateResponse<NCT_FileUpload>(HttpStatusCode.OK, obj);
对此:
return Request.CreateResponse(HttpStatusCode.OK, obj);