如何使用asp web api返回多个图像,然后设置angularjs来显示它们? 我一直在寻找,但我没有得到任何工作。我真的被困在这里所以任何帮助将不胜感激!
我目前的代码: 列出图像; 使用(var uow = new UnitOfWork()) { images = uow.ImageMetadatas.Query(m => m.AlbumId == albumId).Select(m => m.Filename)。ToList(); }
var content = new MultipartContent();
foreach (var img in images)
{
var image = new Bitmap(img);
var thumbnail = image.GetThumbnailImage(200, 200, ThumbnailCallback, IntPtr.Zero);
var stream = new MemoryStream();
thumbnail.Save(stream, ImageFormat.Jpeg);
var imgContent = new StreamContent(stream);
imgContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg");
content.Add(imgContent);
}
return new HttpResponseMessage(HttpStatusCode.Accepted) { Content = content };
答案 0 :(得分:1)
看看这里,看它是否有帮助: Book Store application using AngularJS and Asp.Net Web Api
由于
编辑:
说明: 以下代码用于处理已保存在服务器上的图像文件。
首先,你必须从angularJS调用web api。最简单的方法是使用角度控制器中的$ http,但我建议为此方案创建数据服务,并将该服务注入需要访问该数据的所有控制器。
将此代码直接用于您的控制器:
$scope.myData = [];
$http({
method: 'GET',
url: 'api/controller/'
}).
success(function (data, status, headers, config) {
$scope.myData = data;
}).
error(function (data, status) {
console.log("Request Failed");
});
或创建服务并将其注入控制器:
var myApp = angular.module('myApp', []);
myApp.factory("DataService", function ($http, $q) {
var myData = [];
var read = function () {
var deferred = $q.defer();
deferred.resolve($http({
method: 'GET',
url: 'api/controller/'
}));
return deferred.promise;
};
return {
MyData: myData,
ReadData: read
};
});
myApp.controller('MainCtrl', function ($scope, DataService) {
$scope.myData= [];
DataService.ReadData().
then(function (config, data, headers, status) { $scope.myData = arguments[0].data; });
});
然后在服务器端创建一个'GET'方法以返回带有图像数据的可枚举对象:
public List<myData> GetData()
{
List<myData> returnData = GetImagesData();
return returnData;
}
这里'myData'类是数据模型。
希望它有所帮助。