C#MVCでは、ユーザー(ブラウザ、PDFドキュメント、Excelなど)に異なるレンダリングが必要ないくつかのステップが含まれています。 私は現在、テーブル、チャート、またはその両方を表示するビューのモデルとして機能するコレクションを含む複雑なクラスを持っています。c#MVCで@ url.actionの複雑なオブジェクトをRouteValueDictionaryと併用する
私はurl.action引数に
SRC = "@のUrl.Action(" SampleChartを」オブジェクトを渡すためにRouteValueDictionaryを定義しているチャート の画像を取得するためにurl.action @使用し、 "Statistique"、Model.RouteValues)) "
コントローラ内:ブール値と文字列は塗りつぶされますが、辞書は含まれません(resultatsStatistique)。私の問題を解決するための考えはありますか?以下は
以下のモデル
public class StatisticDTO
{
public virtual string Stat_Title { get; set; }
public bool DisplayChart { get; set; }
public bool DisplayTable { get; set; }
public Dictionary<string, RowStat> resultatsStatistique;
public RouteValueDictionary RouteValues
{
get
{
var rvd = new RouteValueDictionary();
rvd["DisplayChart"] = DisplayChart;
rvd["DisplayTable"] = DisplayTable;
rvd["resultatsStatistique"] = resultatsStatistique;
return rvd;
}
}
}
public class RowStat
{
public virtual string prest_libe { get; set; }
public virtual decimal prest_effec { get; set; }
public virtual int prest_order { get; set; }
public virtual string prest_sex { get; set; }
}
の簡易版である私の見解を簡略化した以下
@model StatisticDTO
<div>
@if (Model.DisplayChart)
{
<div>
<img src="@Url.Action("SampleChart", "Statistique", Model.RouteValues))" />
</div>
}
@if (Model.DisplayTable)
{
@Html.Partial("_Tableau", Model)
}
</div>
あるコントローラ
public ActionResult SampleChart(StatisticDTO modelIN)
{
(.....)
MemoryStream ms = new MemoryStream();
chart.SaveImage(ms, ChartImageFormat.Png);
return File(ms.ToArray(), "image/png");
}
画像のURLとしてブラウザに表示される内容を確認すると便利です。 – MikeS
コントローラのビューを取得する場所はどこですか? –
は '@ Url.Action(" SampleChart "、" Statistique "、新しい{modelIN = Model})'を使用します。 – JamieD77