c# - 在 MVC 中创建图表返回 System.NotSupportedException
问题描述
我正在考虑将图表带入我的 mvc 应用程序。我有这个MSDN 链接。我不喜欢关于使用数据库查询的部分中使用的方法,因为它也涉及在视图中拥有一个数据库文件和查询。起初,我尝试在 ActionResult 中收集数据,将图表对象保存在我的模型中,然后在我的视图中调用.Write()
图表上的方法。然而,当我调用它时,.Write()
我得到了System.NotSupportedException: Specified method is not supported
它.Write()
本身。
动作结果
DataSet data = //getdata
ChartModel chartModel = new ChartModel();
chartModel.MyChart = new Chart(width: 600, height: 400)
.AddTitle("Status Count")
.AddSeries("Default",
xValue: data.Tables[0].AsEnumerable(), xField: "count",
yValues: data.Tables[0].AsEnumerable(), yFields: "status_desc");
return View(chartModel);
模型
public class ChartModel
{
public Chart MyChart { get; set; }
}
看法
@Model.MyChart.Write();
然后我尝试使用 Array 示例并直接复制它并且它有效,所以我认为它不喜欢我.Write()
在视图中拥有它自己。所以我把我的代码改成这样。
动作结果
ChartModel chartModel = new ChartModel();
chartModel.ChartData = //getdata
return View(chartModel);
模型
public class ChartModel
{
public DataSet ChartData{ get; set; }
}
看法
@{var myChart = new Chart(width: 600, height: 400)
.AddTitle("Status Count")
.AddSeries("Default",
xValue: Model.ChartData.Tables[0].AsEnumerable(), xField: "count",
yValues: Model.ChartData.Tables[0].AsEnumerable(), yFields: "status_desc");
}
然而,这得到了相同的System.NotSupportedException: Specified method is not supported
结果,但它现在已经上var myChart = new Chart(width: 600, height: 400)
线了。
目前我的代码看起来像这样,因为一旦我让图表工作,我将添加其他类型的图表但重用相同的代码。
动作结果
ChartModel chartModel = new ChartModel();
chartModel.ChartData = //getdata
chartModel.ChartTitle = "Status Count";
chartModel.XSeries = "count";
chartModel.YSeries = "status_desc";
return View(chartModel);
模型
public DataSet ChartData { get; set; }
public string ChartTitle { get; set; }
public string XSeries { get; set; }
public string YSeries { get; set; }
看法
@{
var myChart = new Chart(width: 600, height: 400)
.AddTitle(Model.ChartTitle)
.AddSeries(
name: "Status",
xValue: Model.ChartData.Tables[0].AsEnumerable(), xField: Model.XSeries,
yValues: Model.ChartData.Tables[0].AsEnumerable(), yFields: Model.YSeries)
.Write();
}
解决方案
你试过这个:
var myChart = new Chart(width: 600, height: 400)
.AddTitle(Model.ChartTitle)
.DataBindTable(dataSource: chartModel.ChartData, xField: Model.XSeries)
.Write();
推荐阅读
- amazon-web-services - AWS Step Functions:将任务输入与 *partial* 任务输出相结合
- python - Django rest api 根视图显示另一个应用程序的链接
- java - 如何在 Criteria API 中比较日期
- python - 无法使用 python 连接到 Azure SQL Server
- c++ - 如何声明特征矩阵,然后通过嵌套循环对其进行初始化
- php - 合并重复的 laravel 对象
- c# - 如何在 MVC 中按 ID 搜索
- android - Android Studio 升级后无法再使用 screenOrientation 肖像
- awk - awk - 如何用字符串打印变量
- kubernetes - 在 statefulset 生成的 pod 上更新 docker 镜像的最佳方法