我在Web.Helpers中使用Chart来呈现视图的图形。这个视图的数据集可以通过类型区分为子集,并且该视图允许用户选择类型。确保视图控制器方法能够获取最新图表数据,只要PartialView调用
含有该图(_Chart.schtml)我的剃刀视图仅仅是:
<p>
<img src="/MyController/MyChart" />
</p>
控制器代码(简化的)
public void MyChart()
{
ChartSeries[] data = GetChartData(new string[] { _curChartDataType });
var chart =
new Chart(500, 200, ChartTheme.Green);
for (int i=0; i<data.Length; i++) {
title += data[i].name + " ";
chart.AddSeries(name: data[i].name, chartType: "Line",
xValue: data[i].xValue, xField: data[i].xField,
yValues: data[i].yValues, yFields: data[i].yFields);
}
chart.AddTitle(title)
.AddLegend()
.Write("png");
}
public ActionResult ObjectList()
{
// irrelevant code removed
return PartialView("_Chart");
}
在父视图的CSHTML,我使用jquery赶用户在类型选择中的改变,并调用Ajax中MyController/ObjectList的调用。
当第一次加载视图时,图呈现正确。但是,用户调用的类型更改会导致后续对ObjectList的调用(如预期的那样),但MyChart()在第一次后再也不会被调用。
任何我应该做的以确保每次调用PartialView(“_ Chart”)时都会再次调用MyChart()?任何建议感激。
感谢您的提醒!但是,cache:false已经被设置,并且不会影响结果。 – ltree