ASP.NET MVC+ ECharts+JSON+Oracle用JSON调用数据库的内容展示统计图

ASP.NET MVC以JSON的方式调用数据库数据生成统计图

ASP.NET MVC 简介:

正如名称所言的那样,该技术的特色是 :M:即是Model(模型);V:即是Views(视图);C:即是Controller(控制器)
模型:一组类,描述了要处理的数据以及修改和操作数据的业务规则;
视图:定义应用程序用户界面的显示方式。
控制器:一组类,用于处理来自用户、整个应用程序流以及特定用用程序逻辑的通信。
到目前为止,只知道View和Controller的用法,对于Model不太会用,但是最近领导让写一个把数据库的内容转换成统计,利用ECharts来实现。艰难的实现完成以后来做个笔记。

上代码吧,越说越乱。

首先是Controller部分:

using Microsoft.AspNetCore.Mvc;
using RoadFlow.Mapper;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization.Json;

namespace RoadFlow.Mvc.Controllers
{
    public class GetEchartsController : Controller
    {
        public ActionResult Charts()
        {
            return View();
        }
       
        public JsonResult GetCharts()
        {
            ArrayList xAxisData = new ArrayList();
            ArrayList yAxisData = new ArrayList();
            System.Data.DataTable dt = new System.Data.DataTable();
            var db = new DataContext();//已经连接完数据库
            var table = db.GetDataTable("select count(receivename) num ,receivename name from ****where status = 2 group by receivename ");//此处是sql语句
            for(int i=0;i<table.Rows.Count;i++)
            {
                xAxisData.Add(table.Rows[i].ItemArray[1]);//提取出我们要的部分存入到数组中
                yAxisData.Add(table.Rows[i].ItemArray[0]);
            }
            var result = new { name = xAxisData, num = yAxisData };//设计JSON格式
            return Json(result);//返回JSON数据
        }
    }
}        

接着上View部分的数据:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    @*<script src="echarts.common.min.js"></script>*@
    <script src="~/RoadFlowResources/scripts/echarts.common.min.js"></script>
    <script src="~/RoadFlowResources/scripts/jquery-1.12.4.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts
            // 指定图表的配置项和数据
        alert("开始执行");
        $.ajax({
            type: "post",
            async: true,
            url: "GetCharts",//一般写出相对路径的
            dataType: "json",
            success: function (result) {
                var objsx = [];
                var objsy = [];
                for (var i = 0; i < result.num.length; i++) {
                    objsy[i] = JSON.parse(result.num[i]);//以特定的JSON的格式接收数字;
                for (var i = 0; i < result.name.length; i++){
                    objsx[i] = JSON.stringify(result.name[i]);//以JSON的方式接收字符串
                }
                var myChart = echarts.init(document.getElementById('main'));
                var option = {
                    title: {
                        text: '自己设计标题'
                    },
                    tooltip: {},
                    legend: {
                        data: ['给个柱的含义']
                    },
                    xAxis: {
                        data: objsx
                    },
                    yAxis: {},
                    series: [{
                        name: 'y轴的名称',
                        type: 'bar',
                        data: objsy
                    }]
                };

                // 使用刚指定的配置项和数据显示图表。
                myChart.setOption(option);
                
            },
            error: function (errorMsg) {
                //请求失败时执行该函数
                alert("请求数据失败!");
                myChart.hideLoading();
            }
        });
    </script>
</body>
</html>

至此完成!!!
最最重要的:
1.设计输出部分的数据,如果不止一个返回值(正常都不止一组返回值),所以一定要以一种可以被处理的可以被接收的方式转换成JSON数据返回。
2.接收数据时一定要区分开,不然会报错,而且不好找哪里犯错了(本人是吃过亏的)。
3.URL的路径一定要写对,这是视图的相对路径,只要能找到该controller下对应的视图的路径即可。
执行结果如下(丑是丑了点,但是也算是从一个小白凑活出了一些东西):
在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
上传图片可以通过在前端页面添加一个文件选择器,让用户选择要上传的图片,然后通过 ASP.NET MVC 的控制器来处理上传操作。下面是一个简单的实例: 1. 在前端页面添加文件选择器 ```html <form id="uploadForm" enctype="multipart/form-data"> <input type="file" id="fileInput" name="fileInput" /> <button type="submit">上传</button> </form> ``` 2. 在控制器处理上传操作 ```csharp [HttpPost] public ActionResult Upload(HttpPostedFileBase fileInput) { if (fileInput != null && fileInput.ContentLength > 0) { var fileName = Path.GetFileName(fileInput.FileName); var filePath = Path.Combine(Server.MapPath("~/Uploads"), fileName); fileInput.SaveAs(filePath); return Content("上传成功"); } else { return Content("请选择要上传的文件"); } } ``` 这个控制器的作用是接收上传的文件,并保存到服务器指定的文件夹。其 `HttpPostedFileBase` 类型的参数 `fileInput` 对应前端页面的文件选择器。 3. 使用 LAYUI 实现上传操作 ```javascript layui.use('upload', function(){ var upload = layui.upload; //执行实例 var uploadInst = upload.render({ elem: '#fileInput' //绑定元素 ,url: '/Home/Upload' //上传接口 ,done: function(res){ //上传完毕回调 console.log(res); } ,error: function(){ //请求异常回调 console.log('上传失败'); } }); }); ``` 这里使用了 LAYUI 的 `upload` 模块来实现上传操作。通过 `render` 方法可以将上传功能绑定到前端页面的文件选择器上,同时还可以指定上传接口和回调函数等参数。 以上就是 ASP.NET MVC + LAYUI 实现上传图片的简单实例和代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值