1

私のLoggedUserHome.Controllerには、グラフに対してこのアクションがあります

 public ActionResult GetGender()
    {


        var AllGender = new List<string>(from c in db.tbl_Profile select c.sex).ToList();
        var Groping = AllGender
           .GroupBy(i => i)
           .Select(i => new { sex = i.Key, CountGet = i.Count() }).ToArray(); //get a count for each

        var key = new Chart(width: 300, height: 300)
            .AddSeries(
            chartType: "pie",
            legend: "Gender Popularity",
            xValue: Groping, xField: "sex",
            yValues: Groping, yFields: "CountGet")
            .Write("gif");
        return null;

    }

そして私の見解では私は与えました

<img src="/LoggedUserHome/GetGender"/>

Nexuss ToArray()の提案のおかげで、データベースを読んでチャートにデータを入力することができました。Nexuzzに感謝します。

4

1 に答える 1

1

簡単な解決策は、

<img src="/LoggedUserHome/GetGender"/>

とのビューで

@{
    var d = new PrimeTrekkerEntities1();
    var AllGender = new List<string>(from c in d.tbl_Profile select c.sex).ToList();
    var Groping = AllGender
        .GroupBy(i => i)
        .Select(i => new { sex = i.Key, Count = i.Count() }); //get a count for each

    var key = new Chart(width: 600, height: 400)
        .AddSeries(
        chartType: "pie",
        legend: "Gender Popularity",
        xValue: Groping, xField: "sex")
        .Write("gif");
}

そして、「はい」この場合、アクション GetGender は必要ありません。

より複雑な解決策は、去ることです

<img src="/LoggedUserHome/GetGender"/>

ただし、GetGender() アクションがチャート画像 URL を返すようにします。したがって、GetGender() でできることは、何らかの方法でチャートを画像ファイルにレンダリングし、画像のパスを含む応答を返すことです。

アップデート:

例を少し更新したので、グラフにデータが表示されます。これが私が持っているものです:

@{
    var AllGender = new List<string>() { "Male", "Female", "Male"};
    var Groping = AllGender
        .GroupBy(i => i)
        .Select(i => new { sex = i.Key, Count = i.Count() }).ToArray(); //get a count for each

    var key = new Chart(width: 600, height: 400)
        .AddSeries(
        chartType: "pie",
        legend: "Gender Popularity",
        xValue: Groping, xField: "sex",
        yValues: Groping, yFields: "count")
        .Write("gif");
}

あなたの例には2つの主な違いがあります:

  • Groping配列になりました。私が理解している限り、チャートはデータが列挙されることを期待しています
  • パラメータを追加yValuesyFieldsたので、チャートは Y 軸で使用する値を認識します
于 2012-08-12T19:04:06.193 に答える