我的控制器(ASP MVC):
public FileResult getTimelineChart(DateTime tsInic, DateTime tsEnd, string typeReq = "normal")
{
var rep = new AfterSalesWind.Models.OM_Repository();
var chart = rep.getTimelineChart(tsInic, tsEnd);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
chart.SaveImage(ms, ChartImageFormat.Png);
return File(ms.ToArray(), @"image/png");
}
角度控制器:
getTimelineChart = function (codSap, revStr) {
dataService.getTimelineChart($scope.dateFilter.dt1, $scope.dateFilter.dt2, function (result) {
$scope.imageChart = "data:image/png;base64," + result;
});
}
角度服务:
getTimelineChart = function (tsInic, tsEnd, callback) {
$http({
url: '/OM_API/getTimelineChart',
method: 'POST',
data: {
tsInic: tsInic,
tsEnd: tsEnd
}
}).success(function (result, status, headers) {
return callback(result);
}).error(function (error) {
return callback(error);
});
}
我的HTML:
<div class="row">
<img ng-src="{{imageChart}}" width="1331" height="360" />
</div>
我哪里错了?
感谢。
答案 0 :(得分:0)
使用MVC,您将其作为File
返回,将其视为真实文件,而不是Base 64编码的内容。您只需将其放在ng-src
上即可。
答案 1 :(得分:0)
首先,我不知道这是否是一个好的解决方案,我只知道它对我有用。
我只有在base-64编码时才有显示图像。然后我改变了我对MVC的回复:
public String getTimelineChart(DateTime tsInic, DateTime tsEnd, string typeReq = "normal")
{
var rep = new AfterSalesWind.Models.OM_Repository();
var chart = rep.getTimelineChart(tsInic, tsEnd);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
chart.SaveImage(ms, ChartImageFormat.Png);
return Convert.ToBase64String(ms.ToArray());
}