Web.HelpersのChartを使用してビューのグラフを描画しています。このビューのデータセットは、タイプによってサブセットに区別することができ、ビューではユーザーがタイプを選択できます。PartialViewが呼び出されるたびにView Controllerメソッドが最新のチャートデータを取得するようにします。
このグラフを含むマイカミソリビュー(_Chart.schtml)が単純である:
<p>
<img src="/MyController/MyChart" />
</p>
コントローラコード(簡体字)、親ビューのCSHTMLで
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");
}
、私がキャッチするのjQueryを使用しユーザのタイプ選択の変更、およびajaxのMyController/ObjectListへの呼び出しを呼び出します。
ビューが最初に読み込まれると、グラフが正しくレンダリングされます。ただし、ユーザーが呼び出す型の変更により、ObjectListへの後続の呼び出し(期待どおり)が発生しますが、MyChart()は初めて初めて呼び出されます。
PartialView( "_ Chart")が呼び出されるたびにMyChart()が再度呼び出されるようにするために必要なことは何ですか?任意の提案が高く評価されました。
ご報告いただきありがとうございます!ただし、cache:falseは既に設定されており、結果には影響しません。 – ltree