2012-08-12 68 views
1

我LoggedUserHome.Controller有这个动作图表MVC3给出了一个空白图表

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

+0

您的操作不会返回任何数据,但是空的,所以使用图表不会出现在你的用户界面上。 – norbip 2012-08-12 10:36:31

回答

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"); 
} 

有你的榜样两个主要区别:现在

  • Groping是一个数组。据我了解图表要求数据被列举
  • 我加入yValuesyFields参数,所以图表知道什么值在Y轴上
+0

非常感谢你的帮助nexuzzz ..但我仍然坚持这个..如果你可以建议我一个非常简单的文章,它运行查询从数据库中获取数据,然后显示在图表中.. .. – Niki 2012-08-16 13:49:18

+0

对不起 - 我没有注意到你的评论。如果它仍然是实际检查那篇文章:http://www.asp.net/web-pages/tutorials/data/7-displaying-data-in-a-chart看起来它有你需要的一切。如果它不是,我们可以尝试做一些特别的:) – nexuzzz 2012-08-25 06:20:02

+0

I'hv尝试了很多次这个教程..但这是一个老版本的教程,也是“用ASP.NET网页在图表中显示数据“不是MVC ...顺便说一句,谢谢你的帮助 – Niki 2012-08-26 14:22:37