Модель содержит, помимо других свойств, метод, который возвращает MSChart как MemoryStream.
В моем представлении я копирую MemoryStream в TempData ["Chart"], а затем использую URL.Action () длявызовите действие контроллеров для возврата FileContentResult, используя MemoryStream из TempData.
в модели
public MemoryStream ViewerChart()
{
Chart chart = new Chart();
:
:
using (MemoryStream memStream = new MemoryStream())
{
chart.SaveImage(memStream, ChartImageFormat.Jpeg);
return memStream;
}
}
в представлении
@{
TempData["Chart"]= Model.ViewerChart();
}
<img alt="Chart" src="@Url.Action("RenderChart")" />
в контроллере
public ActionResult RenderChart()
{
MemoryStream ms = TempData["Chart"] as MemoryStream;
return File(ms.ToArray(), "image/jpeg");
}
Несмотря на то, что все работает нормально, мне все это кажется немного неприятным, особенно использование TempData
Есть ли лучший способ?