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