NicのコントローラからFileResultとしてイメージをストリーミングする方法を試しています。 CodeProject article。MVCコントローラからのFileResultとしてChartイメージをストリームする方法jQuery Ajax経由で更新する
私はそれをさらに進歩させ、画像をjQuery経由で更新させることを考えました。
私はあらゆる方法を試しましたが、表示するイメージを取得できません。この現在の状態では、PNGのすべての文字が表示されています。バイナリデータを送信していると思います。
誰でもこれを行う方法に関するアイデアはありますか?
部分図
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<img src="/Home/GetHistoryChart" alt="My Chart" id="imgHistoryChart" />
ページ
<input id="begindate" type="text" readonly="readonly" style="width:70px;" />
<input id="enddate" type="text" readonly="readonly" style="width:70px;" />
<input type="submit" value="Refresh" id="refreshHistory" />
<div type="text" id="datepicker"></div>
<div id="theImageHistory">
<% Html.RenderPartial("~/Views/Home/Charts/HistoryImg.ascx"); %></div>
<%--Gets the partial view shown above--%>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#refreshHistory").click(function() {
var fromDate = $("#begindate").val();
var toDate = $("#enddate").val();
RefreshImage(fromDate, toDate);
});
});
function RefreshImage(from, to) {
$('div#theImageHistory').load('/Home/GetHistoryChart', { fromDate: '8/1/2009', toDate : '8/24/2009' },
function(html) {
//$('div#theImageHistory')[0].value = html;
alert('Do I get here');
});
}
</script>
コントローラ
public FileResult GetHistoryChart(string? fromDate, string? toDate)
{
// code...
System.IO.MemoryStream imageStream = new System.IO.MemoryStream();
Chart1.SaveImage(imageStream, ChartImageFormat.Png);
return new FileResult("Yo.png", "image/png", imageStream.ToArray());
}