显示div元素内的图表

时间:2014-09-29 09:51:11

标签: c# html asp.net-mvc razor

我的控制器创建了图表:

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

我的剃刀视图显示它:

<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>

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

1 个答案:

答案 0 :(得分: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" + @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>

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

而不是

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

尝试

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

Controller(Home): -

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
}

Controller(Home): -

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