我正在使用 JQuery Flot Charts http://www.flotcharts.org/在我的 MVC 5 应用程序中。我希望创建水平条形图,本教程很有帮助 http://www.jqueryflottutorial.com/how-to-make-jquery-flot-horizontal-bar-chart.html
以下3行代码传入图表插件用于创建图表的数据
var rawData = [[1582.3, 0], [28.95, 1], [1603, 2], [774, 3], [1245, 4], [85, 5], [1025, 6]];
var dataSet = [{ label: "Precious Metal Price", data: rawData, color: "#E8E800" }];
var ticks = [[0, "Gold"], [1, "Silver"], [2, "Platinum"], [3, "Palldium"], [4, "Rhodium"], [5, "Ruthenium"], [6, "Iridium"]];
但是,我的图表不能使用上面这样的硬编码值,而是传递到我的图表中的数据需要是动态的。我可以使用 MVC Razor View 中的 Ajax 调用将数据传递到 rowData
变量中,该调用调用返回 Json 的 Controller 操作(见下文)。
$.ajax({
type: "GET",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
url: '/Statistics/GetTestData/',
error: function () {
alert("An error occurred.");
},
success: function (data) {
var rawData = [data];
}
});
我的问题是如何将 Controller 操作中的数据传递到 ticks
变量中?
我想我需要知道的是,我可以从我的 Controller 操作返回两组数据,一组用于 rawData
变量,格式为
[[1582.3, 0], [28.95, 1], [1603, 2], [774, 3], [1245, 4], [85, 5], [1025, 6]]
其次是 ticks
变量,格式为
[[0, "Gold"], [1, "Silver"], [2, "Platinum"], [3, "Palldium"], [4, "Rhodium"], [5, "Ruthenium"], [6, "Iridium"]]
希望这是有道理的。
如有任何反馈或建议,我们将不胜感激。
谢谢。
最佳答案
can I return from my Controller Action two sets of data
当然,作为一个复合模型。该操作仅返回一个事物,但该事物可以是一个具有多个属性的模型。我不知道你的对象结构,但人为的模型可能看起来像:
public class ChartViewModel
{
public RawDataModel RawData { get; set; }
public TicksModel Ticks { get; set; }
}
然后你的 Controller 操作将只返回一个实例:
var model = new ChartViewModel
{
RawData = GetRawData(),
Ticks = GetTicks()
};
return Json(model);
此复合模型将成为一个方便的位置,可以包含其他客户端代码或与此相关的其他 View 可能需要的其他属性或行为。
然后在客户端代码中,您将根据这些属性设置值:
success: function (data) {
var rawData = data.RawData;
var ticks = data.Ticks;
// etc.
}
关于jquery - 将 Json 数据传递到 MVC Razor View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281530/