详解ASP.NET MVC使用Chart控件调用示例

ASP.NET+Sql Server 2008 +highchart控件从数据库中获取数据生成饼状图柱状图 首先下载highchart控件 下载地址:(https://www.highcharts.com.cn/download) 下载解压后复制到网站的根目录下,然后引入控件中的js文件 <script src="Highcharts-7.1.1/code/themes/jquery-3.2.1.min.js" type="text/javascript"></script&... 阅读详情

 

在 .NET 3.5 的时候,微软就提供了一个 Chart 控件,网络上有大量的关于在 VS2008 中使用这个控件的文章,在 VS2010 中,这个控件已经被集成到 ASP.NET 4.0 中,可以从工具箱中直接使用了。

 

 

 

 

这个控件在 ASP.NET 经典的页面中很容易使用,但是在 ASP.NET MVC 中使用,却会出现各种问题。

 

 

 

 

网上有的说可以这样处理,在 Global.asax 中增加一个方法。

 


Code [http://www.oeedu.com]


   
1 protected void Session_Start()
2 {
3 string id = this .Session.SessionID;
4 }


 

 

 

增加之后的结果是这样。

 

 

 

 

到底应该怎样解决呢?

 

 

 

由于我没有看到 Chart 的源码,从错误的提示信息来说,可以看到是在 Handler 处理中出现问题。

 

 

 

网络上有许多关于配置的文章,例如:

 

ScottGu 的 Built-in Charting Controls (VS 2010 and .NET 4 Series)

 

Michael Ceranski 的 Building a Dashboard Using The Microsoft Chart Controls

 

Delian Tchoparinov 的 Handling chart generated images using Chart Http Handler 

 

 

 

但是,很不幸,要么比较过时,大多数的配置在 VS2010 中是不需要的,要么没有解决问题。

 

 

 

在 ASP.NET MVC 中,处理程序的机制有了很大的变化,不再直接通过处理程序生成结果,而是经过了从处理程序到 Controler 到 Action 的多次传递。与 ASP.NET 经典模式完全不同。

 

 

 

Nic_Roche 在文章 Streaming Chart Images as FileResult from MVC Controllers 中提供了一个思路,在 View 中填入一个图片的引用 ,然后,通过一个 Action 返回这个图片。不过很不幸,下载之后,也没有通过。

 

 

 

方向没有错误,仅仅有一些小的地方需要注意。

 

 

 

下面,我们在 VS2010 中通过 ASP.NET MVC 实现一下。

 

 

 

1. 创建一个 ASP.NET MVC 项目。

 

2. 在 Index.aspx 这个 View 中插入一个图片的引用 ,引用的地址是一个 Action 。

 


< img src = " /Home/GetChart "  alt = " Chart "   />

 

 

 

3. 在项目的 Models 中增加一个 Model:StaticModel.cs,提供数据。

 

 

 

 

 


Code [http://www.oeedu.com]


   
1 using System;
2 using System.Data;
3 using System.Configuration;
4 using System.Linq;
5 using System.Web;
6 using System.Web.Security;
7 using System.Web.UI;
8 using System.Web.UI.HtmlControls;
9 using System.Web.UI.WebControls;
10 using System.Web.UI.WebControls.WebParts;
11 using System.Xml.Linq;
12 using System.Collections.Generic;
13
14 namespace mvcChart.Models
15 {
16 public class StaticModel
17 {
18 public static List < int > createStaticData()
19 {
20 List < int > c_data = new List < int > ();
21 c_data.Add( 1 );
22 c_data.Add( 6 );
23 c_data.Add( 4 );
24 c_data.Add( 3 );
25 return c_data;
26 }
27 }
28 }
29


 

4. 为 Home 的 Controler 增加一个名为 GetChart 的 Action。

 

    注意:

 

      1. 这个 Action 返回的类型是一个 FileResult ,也就是返回一个文件,在这个方法中,使用 FileResult 的派生类 FileStreamResult 通过流返回图片。  

 

      2. 在 33 行,将流的当前位置重新设置到起始位置,以便读取生成的图片数据。imageStream.Position = 0;

 


Code [http://www.oeedu.com]


   
1 public FileResult GetChart()
2 {
3 List < int > data = Models.StaticModel.createStaticData();
4 System.Web.UI.DataVisualization.Charting.Chart Chart2 = new System.Web.UI.DataVisualization.Charting.Chart();
5 Chart2.Width = 412 ;
6 Chart2.Height = 296 ;
7 Chart2.RenderType = System.Web.UI.DataVisualization.Charting.RenderType.ImageTag;
8 Chart2.Palette = ChartColorPalette.BrightPastel;
9 Title t = new Title( " IMG source streamed from Controller " , Docking.Top, new System.Drawing.Font( " Trebuchet MS " , 14 , System.Drawing.FontStyle.Bold), System.Drawing.Color.FromArgb( 26 , 59 , 105 ));
10 Chart2.Titles.Add(t);
11 Chart2.ChartAreas.Add( " Series 1 " );
12 // create a couple of series
13 Chart2.Series.Add( " Series 1 " );
14 Chart2.Series.Add( " Series 2 " );
15 // add points to series 1
16 foreach ( int value in data)
17 {
18 Chart2.Series[ " Series 1 " ].Points.AddY(value);
19 }
20 // add points to series 2
21 foreach ( int value in data)
22 {
23 Chart2.Series[ " Series 2 " ].Points.AddY(value 1 );
24 }
25 Chart2.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;
26 Chart2.BorderlineWidth = 2 ;
27 Chart2.BorderColor = System.Drawing.Color.Black;
28 Chart2.BorderlineDashStyle = ChartDashStyle.Solid;
29 Chart2.BorderWidth = 2 ;
30 Chart2.Legends.Add( " Legend1 " );
31 MemoryStream imageStream = new MemoryStream();
32 Chart2.SaveImage(imageStream, ChartImageFormat.Png);
33 imageStream.Position = 0 ;
34 return new FileStreamResult(imageStream, " image/png " );
35 }


 

 

 

最终的结果如下所示:

 

 

 

 

 源文件下载

 

转自:http://www.oeedu.com/contents/1237/10957.html

 

 

asp.net使用chart控件简单制作柱状体、饼图总结 asp.net使用chart控件简单制作柱状体、饼图总结 1、  柱状图   前台代码:                                                                                       后台代码; public void chart_col()     {        MyS 阅读详情

相关推荐

ASP.NET高级第三方控件开发与实战

ASP.NET 是微软推出的用于构建动态 Web 应用程序的开发框架,其核心结构基于页面生命周期、事件驱动模型以及服务器控件机制。在传统的 Web Forms 开发中,ASP.NET 提供了丰富的一组原生服务器控件(如TextBoxButtonGridView等),它们封装了 HTML、JavaScript 和服务器端逻辑,极大地简化了 Web 开发流程。

weixin_35995661的博客 1232

在 ASP.NET MVC 中使用 Chart 控件

在 .NET 3.5 的时候,微软就提供了一个 Chart 控件,网络上有大量的关于在 VS2008 中使用这个控件的文章,在 VS2010 中,这个控件已经被集成到 ASP.NET 4.0 中,可以从工具箱中直接使用了。 这个控件在 ASP.NET 经典的页面中很容易使用,但是在 ASP.NET MVC 中使用,却会出现各种问题。 网上有的说可以这样处理,在 Global...

weixin_30872671的博客 267

asp.net mvc chart(MVC 使用chart图表控件的示例)

(asp.net MVC 使用chart图表控件的示例

ASP.Net MVC中使用Chart 控件详解

http://www.newxing.com/Tech/DotNet/ASPDotNet/Chart_316.html 在 .NET 3.5 的时候,微软就提供了一个 Chart 控件,网络上有大量的关于在 VS2008 中使用这个控件的文章,在 VS2010 中,这个控件已经被集成到 ASP.NET 4.0 中,可以从工具箱中直接使用了。 这个控件在 AS

zunguitiancheng的专栏 3358

asp.net chart控件的使用

asp chart控件的简单使用说明例子 asp chart控件的简单使用说明例子

用 Python 和 uiautomation 实现微信批量发送

思路是这样,将要发送的人员名单(包括称呼)以及发送内容都维护到Excel里,程序运行时读取Excel里内容,自动搜索人员姓名(微信昵称或备注名),填入要发送的内容,拼接上称呼(如果需要的话)自动点击发送,这样轮巡直至名单人员全部发送完成。、

jankingdom的专栏 1471

在asp.net mvc上应用新ASP.NET图表控件

微软去年11月发布了一个很酷的新ASP.NET服务器控件,<asp:chart />,可以免费用在ASP.NET 3.5中,而且还可以用在asp.net mvc。可以看新ASP.NET图表控件<asp:chart runat="server"/>。 相关资源的下载链接: Download the free Microsoft Chart Controls Down...

diansi8126的专栏 168

从封装到先进封装:一文讲透Chiplet、2.5D/3D堆叠与系统集成

封装是芯片产业链中连接硅片与电路板的桥梁,承担物理保护、电气连接、散热与机械支撑等核心任务。传统封装从DIP、QFP发展到BGA,通过提升引脚密度满足早期性能需求。随着摩尔定律放缓,单纯缩小晶体管尺寸难以为继,先进封装应运而生,其核心理念从“封装单颗芯片”转向“系统级高密度集成”。扇出型封装、2.5D硅中介层、3D堆叠、Chiplet和系统级封装等技术,通过微米级互连和垂直堆叠,大幅提升I/O密度与带宽,成为AI芯片、HBM存储、高性能计算等领域的关键支撑。本文梳理先进封装的技术演进、分层架构与工程难点,帮

weixin_29185167的博客 364

ASP.NET MVC 3 Beta初体验之超酷的Chart

前面一篇文章:ASP.NET MVC 3 Beta初体验之WebGrid介绍了WebGrid控件的使用,ASP.NET MVC 3 Beta中才内置Chart的。这篇文章中将介绍Chart的使用。包括Chart数据源的配置、Chart的显示、Chart保存三个方面。Chart是很多系统中使用,所以在ASP.NET MVC 3 Beta初体验之中介绍它是很有必要的。 ...

diejia1113的博客 126

计算机组成原理实验(已通关)-华中科技大学头歌Educoder(Logisim)

汉字国标码转区位码实验 汉字机内码获取实验 8位可控加减法电路设计 第2关 CLA182四位先行进位电路设计 第3关 4位快速加法器设计 第4关 16位快速加法器设计 第5关 32位快速加法器设计 第6关 5位无符号阵列乘法器设计 6位有符号补码阵列乘法器 乘法流水线设计 原码一位乘法器设计 偶校验编码设计 偶校验解码电路设计 16位海明编码电路设计 16位海明解码电路设计 海明编码流水传输实验 16位CRC并行编解码电路设计 CRC编码流水传输实验

紫荆鱼的博客 4万+

工业级24V电源保护电路深度解析:五重防护机制详解

自恢复保险丝(PPTC,Positive Temperature Coefficient)是一种过流保护元件✅可恢复:过流后自动恢复,无需更换⚡响应快:电流超标立即动作🔄多次使用:在额定范围内可反复使用第1层(F1):阻挡过流 → 物理熔断第2层(D3):吸收浪涌 → 能量泄放第3层(Q1):防止反接 → 逻辑阻断第4层(Q2/Q3):抵御过压 → 主动切断第5层(CR):平滑启动 → 时序控制设计哲学:"让每一级保护专注做好一件事"通过这篇文章,我们深入理解了:✅自恢复保险丝。

qq_58068673的博客 3558

ASP.NET MVC 3 Beta初体验之超酷的Chart:3D效果

在前一篇文章:ASP.NET MVC 3 Beta初体验之超酷的Chart中介绍了Chart的使用,但是没有介绍到3D效果。这篇文章将介绍一下Chart的3D效果的展示。声明一点的是:这个Chart控件可能没有一些开源或者不开源,收费或者不收费的组件那般强大,我相信未来这个控件会越来越强大的。废话不多说了,看下如何展示Chart的3D效果。 显示3D的效果,微软给了我们两...

diejia1113的博客 189

AI驱动的CNC闭环加工系统:边缘实时控制与IIoT反馈实践

闭环控制是工业自动化的核心概念,指通过实时反馈调节系统输出以逼近目标值;其技术原理在于构建短于被控对象时间常数的确定性反馈链路,从而保障动态响应精度与稳定性。在智能制造落地中,AI正从离线分析工具演进为嵌入式实时决策单元,其核心价值在于将工艺知识模型化、控制指令轻量化、执行路径边缘化。典型应用场景包括CNC加工过程中的振动自适应调参、刀具磨损在线补偿及多机协同优化。本实践聚焦FANUC 0i-MF平台,基于Modbus TCP硬实时通信与轻量LSTM+CNN融合模型,实现217毫秒级AI推理与PMC寄存器直

weixin_29704001的博客 322

Chart.js 與 ASP.NET MVC 整合應用

Chart.js 是一套開放原始碼的「圖表」繪製函式庫,和其他第三方的圖表工具相比,Chart.js 的特色如下: 支援 HTML 5、響應式網頁 (RWD, Responsive Web Design) 可免費使用,且可作為商業用途 開放原始碼 (GitHub) 可用 JavaScript 操作及開發 可與 JSON 格式整合,因此能與 ASP.NET MVC、ASP.NET We...

weixin_30316097的博客 403

lp–mspm0g3507开发板进入低功耗模式怎么退出?烧程序烧着烧着就进来了,跳线帽没动过,且报错:Texas Instruments Debugger Error: DAP Co...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1568

2025华为杯第二十二届中国研究生数学建模竞赛A题:通用神经网络处理器下的核内调度问题 - 完整解题分析+完整MATLAB源码!

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 2048

Asp.net mvc 3 beta 新特性介绍

国庆放假归来,刚好赶上asp.net mvc 3 beta发布,和大家分享点我的体验。   首先是创建项目时的选择界面的改变: 1.View Engine的变化。 asp.net mvc 3中添加了Razor这个View engine。 如果你在创建的项目中同时有Index.aspx和Index.cshtml, 默认的MVC会选择aspx 的view来显示。但是你可以通过在Globa...

weixin_34092455的博客 99

中国土地市场网爬取

实习期间老板需要对土地数据进行爬取,想来想去就Google到了.应该算是种类最齐全的土地数据了。Github地址:https://github.com/AnTi-anti/china_land/tree/master。

猫敷雪 5461

最完整指南:Telerik Kendo UI Core 零成本构建 ASP.NET MVC 4 企业级界面

你还在为 ASP.NET MVC 4 项目的 UI 组件丑陋、交互卡顿而烦恼吗?还在为第三方控件的授权费用超预算而头疼吗?本文将带你零成本集成 Telerik Kendo UI Core 开源控件库,通过 7 个实战步骤+ 12 段核心代码+ 3 个对比表格,彻底解决 MVC 4 项目的界面开发难题。读完本文你将掌握: - 3 种 Kendo UI Core 集成方案的选型决策 - 国内 CDN

gitblog_00215的博客 480

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

DevExtreme ASP.NET MVC入门指南 - 将数据绑定到控件(CLR对象)

所有使用数据集合操作的DevExtremeASP.NET MVC控件都有DataSource()方法,与其他控制方法不同,DataSource()在DevExtreme JavaScript API中没有直接对应物,尽管它的用途类似于DevExtreme数据层中的 Store。您可以使用 DataSource() 方法来配置来自不同来源的数据访问: CLR 对象 控制器 JSON 格式的只读数据 数据 OLAP 多维数据集 数据绑定控件(PivotGrid 除外)也具有 DataSourceOp.

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 474

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: Microsoft Chart Controls 心得(2) - 如何透過圖表傳值
下一篇: 用JQuery异步加载PartialView
Csdbfans
博客等级 码龄18年 73粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值