1

대답 사용 컨트롤러에서 이미지 생성this post에서 컨트롤러 이미지를 생성하여 아래 그림과 같이 차트 이미지 그냥) 테스트 데이터 등 :ASP.NET MVC에서 Microsoft Chart Control 사용 빈 이미지 반환

public FileContentResult HistoryChart() 
    { 
     Chart chart = new Chart(); 
     string[] currencies = { "ZAR", "USD", "GBP", "JPY" }; 

     foreach (string currency in currencies) 
     { 
      Series series = new Series(currency); 
      series.ChartType = SeriesChartType.FastLine; 
      for (int x = 0; x <= 30; x++) 
       series.Points.AddXY(x, (x * 5)); 
      chart.Series.Add(series); 
     } 

     using (MemoryStream ms = new MemoryStream()) 
     { 
      chart.SaveImage(ms, ChartImageFormat.Png); 
      ms.Seek(0, SeekOrigin.Begin); 

      return File(ms.ToArray(), "image/png", "mychart.png"); 
     } 
    } 

문제는, 컨트롤러 반환 (비어있는 이미지가) 이미지를 반환 않지만

임 내가 탈락 한 것을 간단하게 그 무언가를 기대! 어떤 입력이라도 고맙게 생각합니다.

그것의 색상을 함께 할 수있는 모든, 나는이 블로그에서 또 다른 예를 사용 후에 당신에게 몇 가지 코드를 추가 : 저도 같은 문제를 했어

이 도움이

답변

4

희망 ..... 그에서 문제 도출 - 모두 너무 '감사합니다'.... 또한

public FileContentResult HistoryChart() 
    { 
     Chart chart = new Chart(); 
     **chart.BackColor = Color.Transparent;** 

     string[] currencies = { "ZAR", "USD", "GBP", "JPY" }; 

     foreach (string currency in currencies) 
     { 
      Series series = new Series(currency); 
      series.ChartType = SeriesChartType.FastLine; 
      for (int x = 0; x <= 30; x++) 
       series.Points.AddXY(x, (x * 5)); 
      chart.Series.Add(series); 
     } 

     **ChartArea ca1 = new ChartArea("ca1"); 
     ca1.BackColor = Color.Cyan; 
     chart.ChartAreas.Add(ca1);** 

     using (MemoryStream ms = new MemoryStream()) 
     { 
      chart.SaveImage(ms, ChartImageFormat.Png); 
      ms.Seek(0, SeekOrigin.Begin); 

      return File(ms.ToArray(), "image/png", "mychart.png"); 
     } 
    } 

, 당신이 당신의 컨트롤러가 있는지 확인해야합니다 System.Drawing을 사용하여

을; using System.Web.UI.WebControls;

건배 ...

JK.

+0

전설 - 감사합니다. – Jimbo

+0

니스, 고마워. 당신의 시안 색 선택은 약간 가혹하지만! – johnnycardy

0

안녕하세요. 동일한 문제가 발생했으며 이미지를 생성 한 다른 시간에 이미지를 저장했기 때문입니다. 렌더링 할 때 내부 상태가 손실됩니다. 이미지를 저장하기 전에 차트 생성을 다시 테스트하십시오. 영어로 죄송합니다.