2014-05-19 3 views
0

Здравствуйте evryone (им с помощью MVC5), я генерировать изображение из диаграммы в формате HTML Helper Extensionизображение не будет отображаться MVC5

public static string GetUrlFromChart(this HtmlHelper helper, Chart chart) 
    { 
     lock (obj) 
     { 
      string path = HttpContext.Current.Server.MapPath("~/App_Data/graphs/"); 
      string filename = path + Guid.NewGuid() + ".jpg"; 
      chart.ToWebImage("jpg").Save(filename); 
      return filename; 
     } 
    } 

на ViewModel я отправить данные для просмотра и я попытался показать их пользователю.

<img src="@Html.GetUrlFromChart(@Model.my_chart)" width="400" height="250"/> 

Image генерировать правильно, в правильном пути, но приложение не может показать мне его, его единственный белый прямоугольник enter image description here

когда я скопировать источник изображения для Windows. enter image description here

Я получаю это изображение.

enter image description here

, но это, кажется, не будут работать с

<img></img> 

, кто знает, как отображать System.Web.Helpers.Chart как изображения или отображения данных, таких как диаграммы?

+0

Я думаю, что ваш метод 'GetUrlFromChart' должен возвращать путь, который по отношению к вашему веб-корня (например,/App_Data/графики/{Guid-здесь}, а не полный путь, как ты сейчас. –

+0

им извините, им не mension это. расширение находится в другом проекте в решении – Jan3Sobieski

+0

Согласно документам, 'ToWebImage()' принимает «jpeg» или «png» в качестве аргументов. http://msdn.microsoft.com/en-us/library/system.web.helpers.webimage.imageformat(v=vs.111).aspx – mxmissile

ответ

0

Здравствуйте спариваться вы должны вернуть изображение, а не путь к файлу я не знаю об этом объекте Chart, так что я просто изменить код для общего изменения один

ваш код:

public static ActionResult GetUrlFromChart() 
    { 
     lock (obj) 
     { 
      string path = HttpContext.Current.Server.MapPath("~/App_Data/graphs/"); 
      string filename = path + Guid.NewGuid() + ".jpg"; 
      var image = chart.ToWebImage("jpg"); 
      //save your image. 
      return File(image.GetBytes(), "image/jpeg"); 
     } 
    } 

в представлении:

<img src="@Url.Action("GetUrlFromChart", "Yourcontrollername")"/> 
+0

, а theres нет способа сделать это с помощью помощников? – Jan3Sobieski

Смежные вопросы