0

リストと Json データを Web ページに返す必要があるレポートを作成しています。私は多層アプリケーションを使用しています。Web プロジェクトは MVC を使用して作成されますが、手間のかかる作業は別のプロジェクトのクラス ライブラリで行われます。

クラス ライブラリからコントローラにレポート オブジェクトを返していますが、モデル内でリストと Json を組み合わせて返すことは可能ですか? 理想的には、レポート モデルを次のようにしたいと考えています。

public class Report
{
    public List<TopSellers> TopSellers { get; set; }
    public List<MonthlySales> MonthlySales { get; set; }
    public Json ShopSales { get; set; }

}

このようにして、リストのものは通常どおりレンダリングできますが、jQuery は返される Json を取得して、使用しているグラフをレンダリングできます。

これは可能ですか?

これと同様に宣言しようとしましたが、取得できる唯一のオプションは「JsonReaderWriterFactory」です。

これまでのJsonの露出はゼロだったので、誰かが私を助けてくれたり、正しい方向に向けてくれたりしたら、とても感謝しています!

ありがとう。

4

2 に答える 2

6

JSON.net ライブラリを使用して、オブジェクトを JSON 文字列にシリアル化し、それを ShopSales プロパティに設定できます。

http://json.codeplex.com/

report.OriginalList = objectToSerialize;

var jsonStr = JsonConvert.Serialize(objectToSerialize);
report.ShopSales = jsonStr;

return report; 

クライアントでは、jQuery で ShopSales プロパティを使用できます。

于 2012-05-09T09:01:17.067 に答える
1

私がここで目にする唯一のアプローチ (私も一度採用したことがあります) は、特定のリクエストをインターセプトし、JSON をレスポンスに直接書き込むHTTP ハンドラーをクラス ライブラリに作成することです ( JSON.netは一見の価値があります)。

HTTP ハンドラーの代わりに、組み込みの ASP.net ルーティング メカニズムを直接活用できるかどうかを調べることもできます。

次に、クラス ライブラリをフロントエンド プロジェクト (つまり、ASP.net MVC / WebForms) への参照として追加する必要があり、ハンドラーをそこに登録する必要があります。

于 2012-05-09T09:04:33.843 に答える