最近、私はAsp.Net Mvc 3でチャートを生成するための良いエンジンを探しました。私は最終的に非常に良い種類のチャートタイプを持っているFusionChartを見つけました。ContentResultとDataTypeがMvc3でajaxを呼び出す
グラフを表示するのに必要なxmlの作成を手伝うために、私はプロジェクトLiberoを見つけました。このプロジェクトでは、グラフィックスのプロパティを定義するために、XMLとオブジェクトモデルの間の抽象レベルを作成します。
プロジェクトではMvc2を使用していますが、Mvc3に変換しようとしました。すべてのサンプルは1つを除いて完全に動作します。 ajax呼び出しのサンプル。
サンプルでは、コントローラーはグラフィックを動的に更新するためにxmlを返すContentResultを返します。このプロジェクトはMvc2では完全に機能しますが、Mvc3では機能しません。ここで
は、コントローラのコードです:
$.ajax({
url: "/Home/GetSalesXmlData",
type: "POST",
data: { chartType: chartType, chartTemplate: chartTemplate, period: period },
dataType: "application/JSON",
success: function (data) {
Chart01.xmlData = data;
Chart01.chartType = chartType;
Chart01.showChart();
},
error: function() {
alert("XMLHttpRequest=" + XMLHttpRequest.responseText + "\ntextStatus=" + textStatus + "\nerrorThrown=" + errorThrown);
}
});
私はMvc3でこのコードを実行しようとすると、私はこのエラーが表示されます。
public ActionResult GetSalesXmlData(string period, string chartType, string chartTemplate)
{
var salesXmlData = this.Content(GetSalesChart(period, chartType, chartTemplate).ToXML(), "text/xml");
return salesXmlData;
}
そして、ここでは、ビューのコードは次のとおりです。
textStatus = parsererror errorThrown = XMLからアプリケーション/ JSONへの変換
しばらく検索したところ、私はこのstackoverflow questionの問題を解決する方法を見つけました。
この記事を読んだ後、私はこれに私のコントローラのコードを変更:
public JsonResult GetSalesXmlData(string period, string chartType, string chartTemplate)
{
var salesXmlData = this.Json(GetSalesChart(period, chartType, chartTemplate).ToXML(), "text/xml");
return salesXmlData;
}
そして、これまでの私のAJAX呼び出し:
$.ajax({
url: "/Home/GetSalesXmlData",
type: "POST",
data: { chartType: chartType, chartTemplate: chartTemplate, period: period },
dataType: "text json",
success: function (result) {
Chart01.xmlData = result;
Chart01.chartType = chartType;
Chart01.showChart();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("XMLHttpRequest=" + XMLHttpRequest.responseText + "\ntextStatus=" + textStatus + "\nerrorThrown=" + errorThrown);
}
});
私の質問は:なぜにMVC2から私のプロジェクトを変換した後、 Mvc3は、私がテキストJSONに、するJsonResultへContentResultからコントローラによって、私のビューでアプリケーション/ JSONからのデータ型の値を結果のリターンを変更する必要がありますか?
ありがとうございます。
私はあなたが持っている深い知識を持っていたいと思います。私は確かに推奨事項を再度読んで読んで、私が使っているjQueryのバージョン、ContentResultで使うことができる別のデータタイプについてもっと詳しく調べていきます。ありがとうございました。私は私の結果についてあなたにお返しします。 – Samuel