これは厳しいものです。まず、通常のWebFormsページでレポートをホストする必要があるように、ViewStateが必要です。 WebFormsとMVCはうまく連携して動作します。
難しい部分は、実際のIEnumerableオブジェクトにバインドされていて、それらのphoney-baloney ObjectDataSourceにバインドされていません。
最初のステップは、レポートデータモデルを構築することです。これはコード内で問合せを行うことができます。 - はい、データソースは、あなたのタイプである
public class ReportSource
{
public Floogle[] Floogles { get; set; }
}
public class Floogle
{
public Doodad[] Doodads { get; set; }
public string Text { get; set; }
}
public class Doodad
{
public int Number { get; set; }
}
トリックは、あなたのレポートでのBindingSourceコントロールを使用してtypeof(ReportSource)
にDataSourceプロパティを設定することです。この(しかし、明らかにはるかに大きい)典型的であるような構造のものレポートモデル。
レポートを設計する際には、豊富なものを得ることはできませんが、できることはあります。
サードパーティのレポートソリューションが提供される限り、Telerik'sが最良の選択肢であることがわかりました。
正確にはこのBindingSourceを使用しますか? – AndreMiranda
まず、この恐ろしいツールを使用しなければならないとの申し訳ありません。 BindingSourceはデザイナーのサーフェスに「ドラッグ」できる「コントロール」です。 –
MVCはドラッグアンドドロップバインド可能なコントロール用に設計されていません。確かに、MVCを使ってそれらを「ハックする」ことができます(MVCはまだWebフォームと同じベース上に構築されています)が、MVCのパラダイムに逆らっているので、推奨されません。あなたがMVCで使用する必要がある既存のレポートを持っているなら、Shirazの答えは良いです。 –