您好,
我们正在为一个Web应用程序使用 MVC / JQuery :在一个屏幕用户可以生成图表。现在要求如下:
1)选择图表标准。 (客户/日期范围/图表轴等)
2)按“生成”按钮...进一步调用JQuery,然后通过Ajax Call从服务器获取数据。
3)
public JsonResult GetDayData([DataSourceRequest]DataSourceRequest request,
string clientID, DateTime? startDate, DateTime? endDate, string SortOrder))
{
//Makes a call to Stored Procedure
Stored procedure runs and return multiple datatables (ds.tavles[0], ds.tables[1] etc.
}
4)基于这些数据表,我们需要刷新/创建 4-5图表(假设将从存储过程返回4-5个数据表)
5)我能够return dataTable[0]
并创建图表,但我无法找到如何在一次调用中返回多个Json对象以及如何在JQuery / Ajax中处理它们。
一种方法是为每个图表控制器单独设置并返回Json对象,但我不想对存储过程进行多次调用。
有关如何将多个dataTable /或类对象从MVC返回到Ajax Call的任何建议吗?
e.g: Each Json objects can have a same or different structure
DataTable 1: {Category: “A”, Points:20, Percentage:87}
{Category: “B”, Points:20, Percentage:87}
DataTable 1: {Category: “A”, Spots:20, Percentage:87,ExtraInfo: “NA”}
{Category: “B”, Spots:20, Percentage:87,ExtraInfo: “NA”}
由于
答案 0 :(得分:1)
我建议你尝试这种方式
[HttpPost]
public JsonResult Action()
{
MyClass objMyClass = new MyClass();
objMyClass.lstTables = new List<System.Data.DataTable>();
objMyClass.lstTables.Add(new System.Data.DataTable());
objMyClass.lstTables.Add(new System.Data.DataTable());
return Json(objMyClass);
}
public class MyClass
{
public List<System.Data.DataTable> lstTables { get; set; }
}
现在你可以传递n个表
答案 1 :(得分:0)
您可以在一个JSON对象中返回数组(在应用程序中执行此操作,或者如果您愿意,可以从数据库返回一个结果obkect),例如:
{
[
{data for table 1},
{data for table 2},
...
]
}
或者是否有不同类型,例如
{
[
{ChartType1: Type1, Data: {data for table 1}},
{ChartType2: Type2, Data: {data for table 2}},
...
]
}