jquery - 将 Json 数据传递到 MVC Razor View

标签 jquery ajax asp.net-mvc json flot

我正在使用 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/

相关文章:

javascript - 为什么调用 jQuery 的 appendChild 会因未定义错误而失败?

ajax - 轮询、Comet、WebSockets 等

c# - 未为成员 MySql.Data.MySqlClient.MySqlException、MySql.Data 解析 ASP.NET MVC 类型

ajax - CKEditor - 将 ckeditor 添加到 ajax 创建的文本区域

php - 使用基于数据库数据的自动填充选项过滤表

c# - MVC5 中的 Bootstrap 模态

asp.net-mvc - 尝试读取 Web API 调用的响应

javascript - 当页面添加1,滚动到底部

jquery - 如何使菜单的最小高度与标题相同?

javascript - PHP 多个后续 HTML 选择字段