Echarts官网

页面配置:

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>EchartsPage</title>
<script src="~/Content/js/jquery.min.js"></script>
<script src="~/Content/js/echarts.min.js"></script>
</head>
<body>
<div id="main" style="width:auto;height:400px;margin:2% auto;"> </div>
<script>
$(function () {
start();
});
function start() {
var url = "/Home/GetEchartsConfig";
$.post(url, function (result) {
var myChart = echarts.init(document.getElementById('main'));//此处jquery获取无效 个人尝试
myChart.setOption(JSON.parse(result));
}); }
</script>
</body>
</html>

后台代码:

using Base;
using Lib;
using Models;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Mvc; namespace WebAdmin.Controllers.Home
{
public partial class HomeController
{
public ActionResult EchartsPage()
{
return View();
}
public JsonResult GetEchartsConfig()
{
var list = GetList();
var yData = new List<string>();
var xReg=new List<int>();
var xAndroid=new List<int>();
var xIos=new List<int>();
var xBJCity=new List<int>();
var xSHCity=new List<int>();
foreach (var item in list)
{
yData.Add(item.CTime.ToString("yyyy/MM/dd"));
} JsonResult json = new JsonResult();
string[] legend = { "注册用户", "Android", "IOS", "北京", "上海" };
yData = yData.Distinct().ToList().Take(8).ToList();
foreach (var item in yData)
{
xReg.Add(UserCount(item, -1, -1));
xAndroid.Add(UserCount(item, 2, -1));
xIos.Add(UserCount(item, 3, -1));
xBJCity.Add(UserCount(item, -1, 1));
xSHCity.Add(UserCount(item, -1, 2));
} JObject option = new JObject()
{
//new JProperty("title", new JObject { new JProperty("text","测试") }),
new JProperty("tooltip", new JObject { new JProperty("show", true) }),
new JProperty("legend", new JObject { new JProperty("data", legend) }),
new JProperty("grid", new JObject { new JProperty("left", "2%") },new JObject { new JProperty("right", "3%") },new JObject { new JProperty("containLabel", true) }),
new JProperty("xAxis", new JObject[] {new JObject { new JProperty("type", "category"), new JProperty("data", yData) } }),
new JProperty("yAxis", new JObject[] { new JObject { new JProperty("type", "value") } }),
new JProperty("series",new JObject []{new JObject { new JProperty("name", "注册用户"), new JProperty("type", "line"), new JProperty("data", xReg) } },new JObject []{new JObject { new JProperty("name", "Android"), new JProperty("type", "line"), new JProperty("data", xAndroid) } },new JObject []{new JObject { new JProperty("name", "IOS"), new JProperty("type", "line"), new JProperty("data", xIos) } },new JObject []{new JObject { new JProperty("name", "北京"), new JProperty("type", "line"), new JProperty("data", xBJCity) } },new JObject []{new JObject { new JProperty("name", "上海"), new JProperty("type", "line"), new JProperty("data", xSHCity) }}),
};
json.Data = JsonConvert.SerializeObject(option); return json; }
/// <summary>
/// 用户所有数据
/// </summary>
/// <returns>List</returns>
public List<V_Biz_Agent> GetList()
{
using (var db = DBHelper.GetDB())
{
var sql = " select * from Biz_Agent where InfoState=1";
var list = db.Query<V_Biz_Agent>(sql).ToList();
return list.Count > 0 ? list : new List<V_Biz_Agent>();
}
}
/// <summary>
///
/// </summary>
/// <param name="dateTimeStr"></param>
/// <param name="platform"></param>
/// <param name="city"></param>
/// <returns></returns>
public int UserCount(string dateTimeStr, int platform, int city)
{
try
{
var dateTime = Convert.ToDateTime(dateTimeStr);
if (platform > 0 && city > 0)
{
return GetList().Count(m => m.CTime.Year == dateTime.Year && m.CTime.Month == dateTime.Month && m.CTime.Day == dateTime.Day && m.Platform == platform && m.GetUserInfo.BizCity == city);
}
else if (platform > 0 && city > 0)
{
return GetList().Count(m => m.CTime.Year == dateTime.Year && m.CTime.Month == dateTime.Month && m.CTime.Day == dateTime.Day && m.Platform == platform);
}
else if (platform < 0 && city > 0)
{
return GetList().Count(m => m.CTime.Year == dateTime.Year && m.CTime.Month == dateTime.Month && m.CTime.Day == dateTime.Day && m.GetUserInfo.BizCity == city);
}
else
{
return GetList().Count(m => m.CTime.Year == dateTime.Year && m.CTime.Month == dateTime.Month && m.CTime.Day == dateTime.Day);
} }
catch (Exception ex)
{
LOGHelper.Trace(LOGHelper.ST.Day, "【HomeController】", ex.Message);
return 0;
} }
}
}

  效果图:

ASP.NET MVC 使用Echarts的更多相关文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(67)-MVC与ECharts

    系列目录 ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fire ...

  2. C# ASP.NET MVC 之 SignalR 学习 实时数据推送显示 配合 Echarts 推送实时图表

    本文主要是我在刚开始学习 SignalR 的技术总结,网上找的学习方法和例子大多只是翻译了官方给的一个例子,并没有给出其他一些经典情况的示例,所以才有了本文总结,我在实现推送简单的数据后,就想到了如何 ...

  3. 应用程序框架实战三十三:表现层及ASP.NET MVC介绍(二)

    最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和Asp.net Mvc,我将在本篇讨论一些 ...

  4. 表现层及ASP.NET MVC介绍(二)

    表现层及ASP.NET MVC介绍(二) 最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和 ...

  5. ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料

    本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/  谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三. ...

  6. ASP.NET MVC实现Excel文件的上传下载

    在应用系统开发当中,文件的上传和下载是非常普遍的需求.在基于.NET的C/S架构的项目开发当中,有多种方案可以实现文件的上传和下载(httpwebrequest.webclient等),而且多采用异步 ...

  7. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目

    ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)   我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...

  8. asp.net MVC通用权限管理系统-响应式布局-源码

    一.Angel工作室简单通用权限系统简介 AngelRM(Asp.net MVC Web api)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash+jquery技术 ...

  9. ASP.NET MVC通用权限管理系统(响应布局)源码更新介绍

    一.asp.net mvc 通用权限管理系统(响应布局)源码主要以下特点: AngelRM(Asp.net MVC)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash ...

随机推荐

  1. win7系统自带截图工具快捷键是什么?怎么设置快捷键

    win7自带的截图工具很好,很强大,比从网上下载的截图工具好用多了,很少会出现问题.但是它能不能像QQ截图工具一样可以使用快捷键呢?今天小编和大家分享下心得,希望能够给你的工作带来快捷. 工具/原料 ...

  2. CSS和JS标签style属性对照表

    盒子标签和属性对照 CSS语法(不区分大小写) JavaScript语法(区分大小写) border border border-bottom borderBottom border-bottom-c ...

  3. CodeForces 370A Rook, Bishop and King

    此题看似很简单,但实际上有不少细节,WA点不少.分情况处理即可. #include<cmath> #include<cstdio> #include<string> ...

  4. 016专家视图测试脚本开发- Environment对象的使用;Msgbox和Print的区别

    (1)读取Built-in 'file -> settings -> Enrionment -> variable type 为 Built-in os = Environment. ...

  5. SQL Server 2008如何进行数据库同步?

    复制有三种类:事务复制.快照复制.合并复制.事务复制是将复制启用后的所有发布服务器上发布的内容在修改时传给订阅服务器,数据更改将按照其在发布服务 器上发生的顺序和事务边界,应用于订阅服务器,在发布内部 ...

  6. apple mac 下使用机械键盘的办法,键盘映射工具软件,apple mac Mechanical keyboard

    apple mac 下使用机械键盘的办法,键盘映射工具软件,apple mac Mechanical keyboard 想在苹果电脑 mac 系统下使用 机械键盘,大部分机械键盘不是为mac设计的,所 ...

  7. codevs 3160 最长公共子串(SAM)

    3160 最长公共子串   题目描述 Description 给出两个由小写字母组成的字符串,求它们的最长公共子串的长度. 输入描述 Input Description 读入两个字符串 输出描述 Ou ...

  8. HDOJ-ACM1097(JAVA) A hard puzzle

    这道题就是HDOJ的1061的变形: 1061 :求n的n次方的个位数 http://www.cnblogs.com/xiezie/p/5596779.html 1097 :求n的m次方的个位数 因此 ...

  9. iOS开发中常见的语句@synthesize obj = _obj 的意义详解

    我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一 ...

  10. WPF线程获取UI线程

    WPF中只能是UI线程才可以改变UI控件相关,当采用多线程工作时,可用以下代码获取 UI线程进行操作: App.Current.Dispatcher.Invoke((Action)delegate() ...