我想要一个控制器来提供图表控件并直接在View中使用它。我做的是在Razor我用过
<p>
<img src="/Exam/ChartReport" />
</p>
在Controller中我创建了一个像
这样的动作方法public ActionResult ChartReport()
{
var data = new System.Collections.ArrayList
{
new { X = DateTime.Now.AddMonths(-2), Y = 200 },
new { X = DateTime.Now.AddMonths(-1), Y = 300 },
new { X = DateTime.Now, Y = 500 }
};
new System.Web.Helpers.Chart(400, 200, System.Web.Helpers.ChartTheme.Blue)
.AddTitle("Price enquiries")
.DataBindTable(data, "X")
.Write("png");
return null;
}
现在我想要的是将模型从View传递给Controller动作作为参数,这样我就可以创建图表而无需进行任何Db查询。我怎样才能做到这一点 。我的视图是基于模型
创建的@model MyApp.ViewModels.SampleModel
<p>
<img src="/Exam/ChartReport" />
</p>
我试着做
<p>
< img src="/Exam/ChartReport/@Model" />
</p>
并在控制器中
public ActionResult ChartReport(SampleModel model) //But model is null
{
}
答案 0 :(得分:1)
您可以将参数传递给控制器操作,如下所示:
<img ... src="/Exam/ChartReport?parameter1=value1¶meter2=value2" />
您的行动应如下:
public class ExamController : Controller
{
public ActionResult ChartReport(string parameter1, string parameter2)
{
...
// Return the contents of the Stream to the client
return File(imgStream, "image/png");
}
}