我想在我的MVC 5應用程序中使用JQuery浮動圖表http://www.flotcharts.org/。目前我只是想了解他們是如何工作的。我用它創建了一個條形圖此示例代碼:用Ajax和Json填充JQuery浮動圖表
$(document).ready(function() {
$(function() {
var data = [[0, 5],[1, 10],[2, 15],[3, 20],[4, 25],[5, 30]];
var dataset = [{ label: "2012 Average Temperature", data: data, color: "#5482FF" }];
var ticks = [[0, "London"], [1, "New York"], [2, "New Delhi"], [3, "Taipei"],[4, "Beijing"], [5, "Sydney"]];
var options = {
series: {
bars: {
show: true
}
},
bars: {
align: "center",
barWidth: 0.5
},
xaxis: {
axisLabel: "World Cities",
axisLabelUseCanvas: true,
axisLabelFontSizePixels: 12,
axisLabelFontFamily: 'Verdana, Arial',
axisLabelPadding: 10,
ticks: ticks
},
legend: {
noColumns: 0,
labelBoxBorderColor: "#000000",
position: "nw"
},
grid: {
hoverable: true,
borderWidth: 2,
backgroundColor: { colors: ["#ffffff", "#EDF5FF"] }
}
};
$.plot($("#placeholder"), dataset, options);
});
});
如果我使用jQuery海軍報圖表,我需要能夠通過AJAX拉在動態的數據,而不是被硬編碼進入我的剃刀視圖像上面一樣。
我創造了我的控制器的行動返回相同的數據作爲硬編碼到上面的例子中
[HttpGet]
public ActionResult GetTestData()
{
return Json(new[] { new[] { 0, 5 }, new[] { 1, 10 }, new[] { 2, 15 }, new[] { 3, 20 }, new[] { 4, 25 }, new[] { 5, 30 }, new[] { 6, 35 } },JsonRequestBehavior.AllowGet);
}
我然後註釋掉數據修正我的Razor視圖代碼和情節調用和更換他們有一個Ajax請求
//var data = [[0, 11],[1, 15],[2, 25],[3, 24],[4, 13],[5, 18]];
//$.plot($("#placeholder"), dataset, options);
$.ajax({
type: "GET",
url: '@Url.Action("GetTestData")',
error: function() {
alert("An error occurred.");
},
success: function (data) {
$.plot($("#placeholder"), dataset, options);
}
});
這Ajax請求則應該叫我控制器的GetTestData行動並返回JSON數據。然而,我在我的GetTestData Action上放了一個斷點,調試過了,並且Action永遠不會被調用,因此數據永遠不會返回以創建條形圖。
任何人都可以請幫我找出爲什麼我的Action沒有被我的Ajax代碼調用。
感謝您的任何反饋意見。
你在你的'success'處理一個變量名mismatach,它返回'你叫data''$ .plot'用'dataset' ... – Mark 2014-10-06 12:50:26
另外,如果你的動作沒有被調用,@ Url.Action(「GetTestData」)指向了正確的URL嗎?當你看着你的JavaScript調試器,在網絡類型選項卡下,是否調用了'$ .ajax'請求?它迴應404,403,500 ...嗎? – Mark 2014-10-06 12:52:52
@Mark感謝您的幫助Mark。我想出瞭解決辦法並將其公佈在下面。 – tgriffiths 2014-10-06 13:41:40