2016-04-01 12 views
0

私は今日チャートで作業しています。そして、私は最終的にそれがすべて機能する方法を見つけたと思いますが、私はどのように渡すべきかわからないという問題に遭遇しました。バイト配列をパラメータとしてHTML.Actionに送る方法は?

私のコントローラで私のチャートを作成します。

foreach (var m in model[0].HistoryValues) 
    { 

     var chart = new Chart(width: 300, height: 200) 
     .AddSeries(
     chartType: "bar", 
     xValue: new[] { "Server", "Db", "Tickets" }, 
     yValues: new[] { m.ServerPerformance, m.Databaseperformance, m.SoldTicketsLastUpdate }) 
     .GetBytes("png"); 

     m.Bytes = chart; 

     //m.ChartFile = File(chart, "image/bytes"); 
    }; 

は、今私は、ビュー内の画像としてそれらを表示したい:

@foreach (var m in Model[0].HistoryValues) 
    { 
     <img src="@Html.Action("getImage", "OverWatch", new { byte[] Mybytes= m.Bytes })" alt="Person Image" /> 
    } 

が、イム取得:

無効な匿名型メンバー宣言子。匿名のメンバーは、 をメンバー割り当て、単純な名前またはメンバーアクセスで宣言する必要があります。

のgetImageメソッド:私はこの問題を解決するにはどうすればよい

public FileContentResult getImage(byte[] bytes) 
{ 
    return new FileContentResult(bytes, "image/jpeg"); 
} 

+1

あなたが直面している問題は、匿名型で型を宣言してはならないということです。次のように書く: 'new {Mybytes = m.Bytes})'。 –

答えて

1

匿名型では、変数型byte []を定義しません。それはそれ自体がm.Bytesのタイプに基づいて動作します

@foreach (var m in Model[0].HistoryValues) 
{ 
    <img src="@Html.Action("getImage", "OverWatch", new { Mybytes= m.Bytes })" alt="Person Image" /> 
} 
+0

これは質問に対する答えでした。ありがとうございました!。他にも何かが現れましたが、私はあなたの注意を引いています。 最終結果はまだ私が望んでいたものではありませんでした。ブラウザのsrcは "System.Web.Mvc.FileContentResult"となります。 – ThunD3eR

+0

あなたはUrl.Actionを使用する必要があると思います。 http://stackoverflow.com/questions/20165376/asp-net-mvc-image-from-byte-array – CathalMF

関連する問題