ASP.NET 3.0图表助手。图像渲染

时间:2011-03-10 23:30:32

标签: asp.net-mvc asp.net-mvc-3

让我们说我有一个帮手:

@helper RenderChart()
{
    <div id="chart-content")" style="margin-top:15px;">
        @*Draw Graph Here*@
        @{
        var key = new Chart(width: 60, height: 40)
        .AddSeries(
            chartType: "pie",
            legend: "Rainfall",
            xValue: new[] { "Jan", "Feb", "Mar", "Apr", "May" },
            yValues: new[] { "20", "20", "40", "10", "10" })
        .Write();}                        
    </div>      
}

我在其中一个部分中称这个帮助者为

@Helpers.RenderChart()

然后我只是得到了响应中的图像而没有别的,只有一个图像而没有其他内容。

可能有人知道如何解决它?

看起来像方法.Write()在响应中写入图像,但我需要只生成图像。

2 个答案:

答案 0 :(得分:1)

您应该使用单独的操作方法渲染图表,并在某个图像源中使用Url.Action调用此方法。

HomeController.cs

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Chart()
    {
        return View();
    }
}

Chart.cshtml

@{ 
    var basicChart = new Chart(width: 600, height: 400) 
        .AddTitle("Chart Title") 
        .AddSeries( 
            name: "Employee", 
            xValue: new[] {  "Peter", "Andrew", "Julie", "Mary", "Dave" }, 
            yValues: new[] { "2", "6", "4", "5", "3" }) 
        .Write(); 
}

Index.cshtml

@{
    ViewBag.Title = "Index";
}
<h2>
    Index
</h2>
@RenderChart()

@helper RenderChart()
{
    <div id="chart-content" style="margin-top: 15px">
        <img src="@Url.Action("Chart")" alt="Chart is here"/>
    </div>
}

答案 1 :(得分:0)

您可以选择look at the tutorials