Web开发:ASP.NET CORE使用Ajax定时获取后端数据

news2024/11/24 17:38:56

一、低难度(刷新a标签)

1、需求

      给a标签每15s刷新一次,显示最新的时间(时间必须由后端获取) 应该如何操作呢

2、代码

后端

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using WebApplication1.Models;

namespace WebApplication1.Controllers
{
    public class MainController : Controller
    {
        public IActionResult Index()
        {
            var currentTime = DateTime.Now.ToString("HH:mm:ss");
            ViewBag.CurrentTime = currentTime;
            return View(); // 当前时间传给对应的视图(/Views/Main/Index)
        }

        // Action 用于获取最新时间的方法
        public IActionResult GetCurrentTime()
        {
            var currentTime = DateTime.Now.ToString("HH:mm:ss");
            return Content(currentTime);  // 直接返回字符串
        }
    }
}

前端

@{
    var now = ViewBag.CurrentTime; // 初始化获取时间
}

<h1>测试页面</h1>

<a id="showtime">当前的时间是:@now</a> <!-- Razor 语法中输出变量值的正确方式 -->

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    // 定义一个函数来更新时间显示
    function updateTime() {
        // 使用 Ajax 请求获取最新时间
        $.ajax({
            url: '@Url.Action("GetCurrentTime", "Main")',  // ajax发送get请求到Main控制器下的GetCurrentTime方法中
            type: 'GET',
            success: function (data) {
                $('#showtime').text('当前的时间是:' + data);
            },
            error: function () {
                console.log('无法获取最新时间');
            }
        });
    }

    // 页面加载完成后立即执行一次,并且每隔15秒执行一次
    $(document).ready(function () {
        updateTime();  // 初始化页面加载时获取一次最新时间
        setInterval(updateTime, 15000);  // 每15秒调用一次该方法
    });
</script>

二、中难度(刷新表格table) 

1.需求

        每隔十秒更新一下table里面的数据

2.代码

        后端:   

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using WebApplication1.Models;

namespace WebApplication1.Controllers
{
    public class MainController : Controller
    {

        public class Student
        {
            public int Id { get; set; }
            public string Name { get; set; }
        }

        public IActionResult Index()
        {
            List<Student> list = new List<Student>();
            list.Add(new Student { Id=1,Name="小虹"});
            list.Add(new Student { Id = 2, Name = "小美" });
            list.Add(new Student { Id = 3, Name = "小刚" });
            ViewData["Student"] = list;
            return View(); 
        }

        public IActionResult GetStudentList()
        {
            Random rnd = new Random();
            int randomNumber = rnd.Next(1, 101); // 生成一个1到100之间的随机整数
            int randomNumber2 = rnd.Next(1, 101); // 生成一个1到100之间的随机整数
            int randomNumber3 = rnd.Next(1, 101); // 生成一个1到100之间的随机整数
            List<Student> list = new List<Student>
            {
                new Student { Id = 1, Name = $"小虹{randomNumber}" },
                new Student { Id = 2, Name = $"小美{randomNumber2}" },
                new Student { Id = 3, Name = $"小刚{randomNumber3}" }
            };
            return Json(list);
        }

    }
}

前端:

@using static WebApplication1.Controllers.MainController
@{
    var list = ViewData["Student"] as List<Student>;
}

<h1>学生列表</h1>

<table class="table" id="studentTable">
    <thead>
        <tr>
            <th>ID</th>
            <th>姓名</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var student in list)
        {
            <tr>
                <td>@student.Id</td>
                <td>@student.Name</td>
            </tr>
        }
    </tbody>
</table>

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    function updateStudentTable() {
        // 使用 AJAX 请求更新数据
        $.ajax({
            url: '@Url.Action("GetStudentList", "Main")', // 调用Get请求,访问后端的Main控制器的GetStudentList方法
            type: 'GET',
            success: function (data) {
                // 清空表格内容
                $('#studentTable tbody').empty();
                // 遍历新数据并添加到表格中
                data.forEach(function (student) {
                    $('#studentTable tbody').append(`
                            <tr>
                                <td>${student.id}</td>
                                <td>${student.name}</td>
                            </tr>
                        `);
                });
            }
        });
    }
    // 初始化页面加载数据
    //updateStudentTable();

    // 定时器,每隔10秒调用一次方法
    setInterval(updateStudentTable, 10000); // 10秒间隔
</script>

 三、注意事项

不要忘记引用Jquery库

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1941694.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【专题】百度萝卜快跑体验:Robotaxi发展现状与展望报告合集PDF分享(附原数据表)

原文链接&#xff1a; https://tecdat.cn/?p37054 百度“萝卜快跑”近期因事故与抵制引发关注&#xff0c;武汉部署超300辆全无人驾驶车。体验显示其安全但策略保守&#xff0c;行驶效率低于人类司机&#xff0c;价格亲民。阅读原文&#xff0c;获取专题报告合集全文&#xf…

第2章-数学建模

目录 一、数据类型 【函数】&#xff1a; &#xff08;1&#xff09;find()、rfind()、index()、rindex()、count() &#xff08;2&#xff09;split()、rsplit() &#xff08;3&#xff09;join() &#xff08;4&#xff09;strip()、rstrip()、lstrip() &#xff08;5&…

物联网mqtt网关搭建背后的技术原理

前言 物联网是现在比较热门的软件领域&#xff0c;众多物联网厂商都有自己的物联网平台&#xff0c;而物联网平台其中一个核心的模块就是Mqtt网关。这篇文章的目的是手把手教大家写书写一个mqtt网关&#xff0c;后端存储支持Kafka/Pulsar&#xff0c;支持mqtt 连接、断链、发送…

GPT盘新增容量后如何扩容?

场景&#xff1a;一块5T的GPT盘&#xff0c;现有需求再加10T&#xff0c; 在虚拟化平台加10T盘后&#xff0c;机器不重启&#xff0c;执行命令 echo 1 > /sys/block/sdb/device/rescan刷新磁盘容量&#xff0c;可看到容量已刷出。 但执行fdisk /dev/sdb时&#xff0c;发现创…

css class 多种规则判断样式

需求 商品分类选择变量 上下的分类需要添加圆角 这个就设计到多个分类的判断 解决方法 在class里面多写些判断 判断上下的分类 做成圆角即可 代码 <!-- html --> <view v-for"(item,index) in tabbar" :key"index" class"u-tab-ite…

如何帮助自闭症儿童更好地控制面部表情

作为星贝育园自闭症康复学校的老师&#xff0c;帮助自闭症儿童更好地控制面部表情是我们工作中的一项重要任务。 在孩子进入星贝育园之前&#xff0c;我们会先对其进行个性化的观察报告。通过一段时间的仔细观察和评估&#xff0c;全面了解孩子的行为特点、能力优势以及…

[css3] 如何设置边框颜色渐变

div {border: 4px solid;border-image: linear-gradient(to right, #8f41e9, #578aef) 1; }参考&#xff1a; 5种CSS实现渐变色边框&#xff08;Gradient borders方法的汇总

linux/windows wps node.js插件对PPT状态监听并且通知其他应用

需求背景 公司要求对Window系统&#xff0c;和国产操作系统&#xff08;UOS&#xff09;的wps 软件在 PPT开始播放 结束播放&#xff0c;和播放中翻页 上一页 下一页 等状态进行监听&#xff0c;并通知到我们桌面应用。 技术方案 开发WPS插件&#xff0c;使用node.JS 插件开…

MongoDB教程(十七):MongoDB主键类型ObjectId

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、Object…

共享充电桩语音ic方案,展现它的“说话”的能力

随着电动汽车的普及&#xff0c;充电设施的便捷性、智能化需求日益凸显&#xff0c;共享充电桩语音IC应运而生&#xff0c;成为连接人与机器、实现智能交互的桥梁。本文将为大家介绍共享充电桩语音ic的概述、应用词条以及优势&#xff0c;希望能够帮助您。 一、NV170D语音ic概述…

(laya)地图缩放保持视口点不变算法

文章目录 结论视口中心保持不变【未化简过程】&#xff08;代码选中部分为x方向的计算&#xff09;部分解析 结论 视口中心点保持不变 scl&#xff1a;新的缩放比 x&#xff1a;缩放为1时的偏移坐标 stHalfW&#xff1a;舞台半宽 视口左上角点保持不变 去掉 stHalfW即可 视…

探索NVM:让Node.js开发如虎添翼的利器

文章目录 前言一、NVM简介&#xff1a;版本管理的瑞士军刀二、NVM能解决什么问题&#xff1f;三、如何使用NVM​&#xff1f;总结 前言 在这个日新月异的编程世界里&#xff0c;Node.js凭借其高效的非阻塞I/O操作和轻量级的事件驱动模型&#xff0c;成为了全栈开发、微服务架构…

Linux之基础IO(上)

目录 库函数文件操作 写文件 读文件 系统调用文件操作 写文件 读文件 文件描述符fd 深刻理解linux下一切皆文件 重定向原理 在c语言中我们学习了fopen&#xff0c;fread&#xff0c;fwrite接口&#xff0c;用于进行文件相关的操作&#xff0c;在之前我们学习了计算…

站在资本投资领域如何看待分布式光纤传感行业?

近年来&#xff0c;资本投资领域对于分布式光纤传感行业并不十分敏感。这主要是由于分布式光纤传感技术是一个专业且小众的领域&#xff0c;其生命周期相对较长&#xff0c;缺乏爆发性&#xff0c;与消费品或商业模式创新产业有所不同。此外&#xff0c;国内的投资环境也是影响…

webStorm 实时模板笔记

文章目录 1、单斜杠效果 2、双斜杠效果 3、控制台打印效果 1、单斜杠 /** $END$ */效果 2、双斜杠 /*** $END$* author Ikun* since $DATE$ $TIME$ */DATE date() ✔ TIME time() ✔效果 3、控制台打印 console.log("███████$EXPR_COPY$>>>>&a…

040403数据选择器比较器运算电路

数据选择器&比较器&运算电路 4.4.3数据选择器0.数据选择器的定义与功能1.4选1数据选择器2.集成电路数据选择器利用8选1数据选择器组成函数产生器的一般步骤 4.4.4 数值比较器1.1位数值比较器2.2位数值比较器3.集成数值比较器4.集成数值比较器的位数扩展 4.4.5算术运算电…

时序分解 | Matlab基于CEEMDAN-CPO-VMD的CEEMDAN结合冠豪猪优化算法(CPO)优化VMD二次分解

时序分解 | Matlab基于CEEMDAN-CPO-VMD的CEEMDAN结合冠豪猪优化算法&#xff08;CPO&#xff09;优化VMD二次分解 目录 时序分解 | Matlab基于CEEMDAN-CPO-VMD的CEEMDAN结合冠豪猪优化算法&#xff08;CPO&#xff09;优化VMD二次分解效果一览基本介绍程序设计参考资料 效果一览…

嵌入式linux学习的每一步具体要掌握什么?

嵌入式Linux是一门综合性很强的学科&#xff0c;涉及到操作系统、硬件、驱动程序、应用开发等多个方面。我收集归类了一份嵌入式学习包&#xff0c;对于新手而言简直不要太棒&#xff0c;里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言类教学&#…

【python基础知识】整除

熟练使用你所常用的开发语言是一个非常基本的要求。如果你日常需要使用Python&#xff0c;但是你对向上取整&#xff0c;向下取整&#xff0c;以及Python中的默认实现方式是什么都不知道的话&#xff0c;那么我就需要怀疑你的专业能力了。 1. 整除 讲解这个整除的知识&#xf…

JAVA毕业设计152—基于Java+Springboot+vue+小程序的个人健康管理系统小程序(源代码+数据库+15000字论文)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue小程序的个人健康管理系统小程序(源代码数据库15000字论文)152 一、系统介绍 本项目前后端分离带小程序(可以改为ssm版本)&#xff0c;分为用户、管理员两种…