2014-09-29 25 views
0

我有我的控制器创建图表:显示图表

var myChart = new Chart(width: 1000, height: 600) 
    .AddTitle("Employee's Efficiency") 
    .AddSeries(
     name: "Employee", 
     xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" }, 
     yValues: new[] { "2", "6", "4", "5", "3" }) 
    .Write(); 
myChart.Save("~/Content/chart" + pid, "jpeg"); 
return base.File("~/Content/chart" + pid, "jpeg"); 

和我的Razor视图显示它:

<body> 
<div class="jumbotron"> 
    <h1>Contas e Despesas <span class="glyphicon glyphicon-euro"></span></h1> 
    <p class="lead">Onde gastei o meu dinheiro? Controle melhor as suas despesas com o Contas e Despesas. </p> 
</div> 
<div> 
    <img src="@Url.Action("EfficiencyChart", "Home", new { pid = @Model.Id })" /> 
</div> 

我的问题是,图像覆盖整个page ..我无法显示我的jumbotron或除图表图像以外的任何其他内容:/

回答

0

您可以将m如下图所示: -

@{ 
var myChart = new Chart(width: 1000, height: 600) 
     .AddTitle("Employee's Efficiency") 
     .AddSeries(
      name: "Employee", 
      xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" }, 
      yValues: new[] { "2", "6", "4", "5", "3" }) 
     .Write(); 
     myChart.Save("~/Content/chart" + @Model.Id, "jpeg"); 
} 

<div class="jumbotron"> 
    <h1>Contas e Despesas <span class="glyphicon glyphicon-euro"></span></h1> 
    <p class="lead">Onde gastei o meu dinheiro? Controle melhor as suas despesas com o Contas e Despesas. </p> 
</div> 
<div> 
    <img src="@myChart" /> 
</div> 

不要忘记在视图中添加相关的命名空间。

OR

而不是

<img src="@Url.Action("EfficiencyChart", "Home", new { pid = @Model.Id })" /> 

尝试

@{ Html.RenderAction("EfficiencyChart", "Home", new { pid = @Model.Id }); } 

控制器(主页): -

public ActionResult EfficiencyChart(int pid) 
{ 
    var myChart = new Chart(width: 1000, height: 600) 
     .AddTitle("Employee's Efficiency") 
     .AddSeries(
      name: "Employee", 
      xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" }, 
      yValues: new[] { "2", "6", "4", "5", "3" }) 
     .Write(); 
     myChart.Save("~/Content/chart" + pid, "jpeg"); 
    return File("~/Content/chart" + pid, "image/jpeg");// <----change here 
} 

控制器(主页): -

public ActionResult EfficiencyChart(int pid) 
{ 
    var myChart = new Chart(width: 1000, height: 600) 
     .AddTitle("Employee's Efficiency") 
     .AddSeries(
      name: "Employee", 
      xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" }, 
      yValues: new[] { "2", "6", "4", "5", "3" }) 
     .GetBytes("jpeg"); 

    return File(myChart , "image/jpeg"); // <----change here 
} 

查看: -

<img src="@Url.Action("EfficiencyChart", "Home", new { pid = @Model.Id })" /> 
+0

不错,但我需要做我的控制器使用从我的DB值这里面的逻辑..如何我可以在控制器内部做到吗? – tiagocarvalho92 2014-09-29 15:32:41

+0

@ user2002274 ....查看更新的答案... – 2014-09-29 15:49:40

+0

@ user2002274..and尝试更改较小的值更改图表的高度和宽度.. – 2014-09-29 17:58:30