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