Web开发:ASP.NET CORE前后端交互之AJAX(含基础Demo)
目录
一、后端
二、前端
三、代码位置
四、实现效果
五、关键的点
1.后端传输给前端:
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> students = new List<Student>{new Student { Id = 1, Name = "Alice" },new Student { Id = 2, Name = "Bob" },new Student { Id = 3, Name = "Charlie" }};ViewData["Students"]= students; return View(); // 将学生列表传递给视图}[HttpPost]public ActionResult ProcessStudent([FromBody] List<Student> result)//用[FromBody]来接收{// 返回示例:假设直接返回成功信息return Content($"成功!");}}
}
二、前端
@using static WebApplication1.Controllers.MainController
@{var stulist = ViewData["Students"] as List<Student>;//声明后端的ViewData,注意需要as关键字转化为实体
}<h2>学生列表</h2>@foreach (var student in stulist)//声明过后可以直接遍历
{<div><a class="student-link" href="#" data-student-id="@student.Id" data-student-name="@student.Name">@student.Name</a></div>
}<button id="submitButton">我是一个按钮</button>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script>var selectedStudentId = null;var selectedStudentName = null;$(document).ready(function () {//class=student-link订阅点击事件$('.student-link').click(function () {// 获取被点击链接的数据selectedStudentId = $(this).data('student-id');selectedStudentName = $(this).data('student-name');console.log(`Selected student: id=${selectedStudentId}, name=${selectedStudentName}`);//打印到控制台});//id=submitButton订阅点击事件$('#submitButton').click(function () {var allStudents = []; // 存放所有学生信息// 遍历所有学生,收集学生信息$('.student-link').each(function () {var studentId = $(this).data('student-id');//自定义属性不可以用Val()var studentName = $(this).data('student-name');allStudents.push({ id: studentId, name: studentName });//存入列表中});// 在这里提交所有学生信息$.ajax({url: '@Url.Action("ProcessStudent", "Main")',//将发送一个POST请求到MainController的ProcessStudent方法中type: 'POST',contentType: 'application/json',data: JSON.stringify(allStudents),//JSON格式发送success: function (response) {alert('后端成功响应: ' + response);},error: function () {alert('后端未成功相应');}});});});
</script>
三、代码位置
四、实现效果
五、关键的点
1.后端传输给前端:
①需要声明和强制转换
@{var stulist = ViewData["Students"] as List<Student>;//声明后端的ViewData,注意需要as关键字转化为实体
}
②只能在同一个控制器+方法名传输,例如Controller/MainController的Index方法的ViewData(或者ViewBag)只可以传输给Views/Main/Index.cshtml,不能够传递给其余前端界面。
2.前端传输给后端
①需要写清楚url和type(传输类型),以下url表示发送一个POST请求到MainController的ProcessStudent方法中
url: '@Url.Action("ProcessStudent", "Main")'
type: 'POST',
②后端接收也需要注明类型和方法名(要和前端一一对应好),用JSON传递还需要加上[FromBody]强制转化为实体
[HttpPost]
public ActionResult ProcessStudent([FromBody] List<Student> result)//用[FromBody]来接收
{
// 返回示例:假设直接返回成功信息
return Content($"成功!");
}
相关文章:
Web开发:ASP.NET CORE前后端交互之AJAX(含基础Demo)
目录 一、后端 二、前端 三、代码位置 四、实现效果 五、关键的点 1.后端传输给前端: 2.前端传输给后端 一、后端 using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.Rendering; using WebAppl…...
经典神经网络(14)T5模型原理详解及其微调(文本摘要)
经典神经网络(14)T5模型原理详解及其微调(文本摘要) 2018 年,谷歌发布基于双向 Transformer 的大规模预训练语言模型 BERT,而后一系列基于 BERT 的研究工作如春笋般涌现,预训练模型也成为了业内解决 NLP 问题的标配。 2019年,谷歌…...
C语言结构体字节对齐技术详解
C语言结构体字节对齐技术详解(第一部分) 在C语言中,结构体字节对齐是一个重要的概念,它涉及到内存中数据的布局和访问效率。字节对齐可以帮助提高程序的性能,减少内存碎片,并确保数据的一致性和正确性。本…...
Linux编辑器——vim的使用
目录 vim的基本概念 命令模式 底行模式 插入模式 注释和取消注释 普通用户进行sudo提权 vim配置问题 vim的基本概念 一般使用的vim有三种模式: 命令模式 底行模式和插入模式,可以进行转换; vim filename 打开vim,进入的…...
Java案例斗地主游戏
目录 一案例要求: 二具体代码: 一案例要求: (由于暂时没有学到通信知识,所以只会发牌,不会设计打牌游戏) 二具体代码: Ⅰ:主函数 package three;public class test {…...
sqlite|轻量数据库|pgadmin4的sqlite数据库操作--重置密码和账号解锁
前言: pgadmin4的用户密码以及pgadmin4创建的pg数据库的连接信息等等都是存放在sqlite数据库内的;而有的时候,可能会由于自己的问题将pgadmin4的密码忘记,这个时候需要重置pgadmin4的密码,或者是pgadmin4的密码输错多…...
【ARMv8/v9 异常模型入门及渐进 9.1 - FIQ 和 IRQ 打开和关闭】
请阅读【ARMv8/v9 ARM64 System Exception】 文章目录 FIQ/IRQ Enable and Disable汇编指令详解功能解释使用场景和注意事项 FIQ/IRQ Enable and Disable 在ARMv8/v9架构中,可以使用下面汇编指令来打开FIQ和 IRQ,代码如下: asm volatile ("msr da…...
深入探索Flutter中的状态管理:使用Provider库
当涉及Flutter状态管理时,provider是一个强大且灵活的解决方案,它提供了一种简单且高效的方式来管理应用程序状态。本文将详细介绍Flutter中provider插件的使用方法、示例代码、各种使用场景以及注意事项。 1. 引入依赖 首先,需要在项目的pubspec.yaml文件中添加provider依…...
算法工程师第十四天(找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树 )
参考文献 代码随想录 一、找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 层次遍历&#…...
memcached 高性能内存对象缓存
memcached 高性能内存对象缓存 memcache是一款开源的高性能分布式内存对象缓存系统,常用于做大型动态web服务器的中间件缓存。 mamcached做web服务的中间缓存示意图 当web服务器接收到请求需要处理动态页面元素时,通常要去数据库调用数据,但…...
C语言 分割链表
题目来源: 代码部分,参考官方题解的写法: // 思路: 就是把原始链表,拆分为2部分,最后再拼接一下。struct ListNode* partition(struct ListNode* head, int x) {struct ListNode* small malloc(sizeof(struct ListNode));struct ListNode*…...
spring ioc的原理
1、控制反转(IOC):对象的创建控制权由程序自身转移到外部(容器) 2、依赖注入(DI):所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。 Spring 中的 IoC 的实现原理就是工厂模式加反射机制。 参考资料…...
npm安装依赖包报错,npm ERR! code ENOTFOUND
一、报错现象: npm WARN registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning ETIMEDOUT: request to https://registry.npmjs.org/vue failed, reason: connect ETIMEDOUT 104.16.23.35:443 npm WARN registry Using stale data…...
【iOS】——内存对齐
内存对齐是什么 内存对齐指的是数据在内存中的布局方式,它确保每个数据类型的起始地址能够满足该类型对齐的要求。这是因为现代处理器在访问内存时,如果数据的起始地址能够对齐到一定的边界,那么访问速度会更快。这种对齐通常是基于数据类型…...
网络安全-网络安全及其防护措施10
46.软件定义网络(SDN) 软件定义网络(SDN)的概念和特点 软件定义网络(SDN)是一种新兴的网络架构,通过将网络的控制平面(Control Plane)和数据转发平面(Data …...
Pytorch基础应用
1.数据加载 1.1 读取文本文件 方法一:使用 open() 函数和 read() 方法 # 打开文件并读取全部内容 file_path example.txt # 替换为你的文件路径 with open(file_path, r) as file:content file.read()print(content)方法二:逐行读取文件内容 # 逐…...
Axure 教程 | 设置文本框背景透明
在AXURE软件中,部件样式可以编辑,但有时却无法满足所有个性化原型的需求。例如文本框部件,可以设置是否隐藏边框,但即使隐藏边框之后,文本框还会有白色的背景。 当界面需要一个无背景色的输入框时,对于完…...
【BUG】已解决:NOAUTH Authentication required
已解决:NOAUTH Authentication required 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开发者社区主理人…...
全国产服务器主板:搭载飞腾FT2000+/64处理器的高性能加固服务器
近期很多朋友咨询全国产化的服务器主板。搭载的是飞腾FT-2000/64的全国产化服务器主板。他的主要特点是:①丰富的PCIe、千兆以太网、SATA接口,可用作数据处理、存储、通信服务器;②板载独立显示芯片,对外HDMI/VGA/L…...
OPC UA边缘计算耦合器BL205工业通信的最佳解决方案
OPC UA耦合器BL205是钡铼技术基于下一代工业互联网技术推出的分布式、可插拔、结构紧凑、可编程的IO系统,可直接接入SCADA、MES、MOM、ERP等IT系统,无缝链接OT与IT层,是工业互联网、工业4.0、智能制造、数字化转型解决方案中IO系统最佳方案。…...
【已解决】Django连接MySQL启动报错Did you install mysqlclient?
在终端执行python manage.py makemigrations报错问题汇总 错误1:已安装mysqlclient,提示Did you install mysqlclient? 当你看到这样的错误信息,表明Django尝试加载MySQLdb模块但未找到,因为MySQLdb已被mysqlclient替代。 【解…...
ubuntu gcc g++版本切换
要将 GCC 和 G 的版本从 12.4 降低到 9,你可以按照以下步骤操作: 安装 GCC 和 G 9: sudo apt update sudo apt install gcc-9 g-9 使用 update-alternatives 设置优先级: sudo update-alternatives --install /usr/bin/gcc gcc…...
如何发一篇顶会论文? 涉及3D高斯,slam,自动驾驶,三维点云等等
SLAM&3DGS 1)SLAM/3DGS/三维点云/医疗图像/扩散模型/结构光/Transformer/CNN/Mamba/位姿估计 顶会论文指导 2)基于环境信息的定位,重建与场景理解 3)轻量级高保真Gaussian Splatting 4)基于大模型与GS的 6D pose e…...
Java面试八股之什么是Redis的缓存更新
什么是Redis的缓存更新 Redis的缓存更新是指当缓存中的数据发生变化时,需要将这些变化同步到缓存中以保持数据的一致性。缓存更新的目的是确保缓存中的数据始终是最新的,以便用户可以获取到最新的数据。 常见的缓存更新策略包括: 直接覆盖…...
新华三H3CNE网络工程师认证—VLAN使用场景与原理
通过华三的技术原理与VLAN配置来学习,首先介绍VLAN,然后介绍VLAN的基本原理,最后介绍VLAN的基本配置。 一、传统以太网问题 在传统网络中,交换机的数量足够多就会出现问题,广播域变得很大,分割广播域需要…...
Linux-开机自动挂载(文件系统、交换空间)
准备磁盘 添加三块磁盘(两块SATA,一块NVMe) 查看设备: [rootlocalhost jian]# ll /dev/sd* [rootlocalhost jian]# ll /dev/nvme0n2 扩:查看当前主机上的所有块设备,通过如下指令实现: [root…...
[003-02-10].第10节:Docker环境下搭建Redis主从复制架构
我的博客大纲 我的后端学习大纲 我的Redis学习大纲 1.cluster(集群)模式-docker版 哈希槽分区进行亿级数据存储 1.1.面试题:1~2亿条数据需要缓存,请问如何设计这个存储案例 1.回答:单机单台100%不可能,肯…...
uni-app学习HBuilderX学习-微信开发者工具配置
HBuilderX官网:简介 - HBuilderX 文档 (dcloud.net.cn)https://hx.dcloud.net.cn/ uni-app官网: uni-app官网 (dcloud.net.cn)https://uniapp.dcloud.net.cn/quickstart-hx.htmlHBuilder下载安装:打开官网 uni-app项目的微信开发者工具配置…...
持续集成08--Jenkins邮箱发送构建信息及测试报告
前言 在持续集成(CI)和持续部署(CD)的自动化流程中,及时通知团队成员关于构建的成功或失败是至关重要的。Jenkins,作为强大的CI/CD工具,提供了多种通知机制,其中邮件通知是最常用且有…...
专题四:设计模式总览
前面三篇我们通过从一些零散的例子,和简单应用来模糊的感受了下设计模式在编程中的智慧,从现在开始正式进入设计模式介绍,本篇将从设计模式的7大原则、设计模式的三大类型、与23种设计模式的进行总结,和描述具体意义。 设计模式体…...
网站建设费用包括/百度seo排名优化提高流量
CentOS上,除了os类的yum源,还需要配置几个常用的源:epel、ius。 有很多国内很多镜像站点都提供了各类仓库的镜像站点,个人感觉比较全的是阿里云http://mirrors.aliyun.com和清华大学开源镜像站点https://mirrors.tuna.tsinghua.ed…...
国内较好的网站开发商城/优化英文
php copy()函数介绍copy — 复制拷贝文件语法:bool copy ( string $source , string $dest [, resource $context ] )将文件从 source 复制拷贝到 dest。 如果要移动文件的话,请使用rename()函数。参数:source:源文件路径。dest:目标路径。如果 dest 是一…...
公司做网站百度还是阿里/怎么优化推广自己的网站
开发过程中,我遇到过这样一种需求,多个App并行开发,但是基础库(网络、图片、自定义view之类)完全可以用同一套,基础库一般不会频繁修改,但是如果修改了某一些代码,又希望对所有引用基…...
做资源网站怎么不封/公司推广咨询
打开qgis ,在PostGIS上右键点击【连接】,如下 点击【测试连接】 连接成功 这样就对应起来了,删除qgis中的sichuan图层,即表示删除postgis中的sichuan图层...
怎样宣传网站/网站不收录怎么办
第一部分 字符的编码方式 概述:每一个字符都可以对应于一个二进制码(整型数值),这个过程称作编码过程 对字符进行编码,编码成二进制数值可以表示的形式,有利于计算机操作 目前为止,已经存在多种…...
济宁中小企业网站建设/网站开发与设计
1、编辑/etc/default/grub配置文件 GRUB_CMDLINE_LINUXnet.ifnames0 biosdevname0 sed -i.bak /GRUB_CMDLINE_LINUX/s#$# net.ifnames0"# /etc/default/grub 2、为grub2生成其配置文件 grub2-mkconfig -o /etc/grub2.cfg 3、重启系统 reboot [rooty_zilong ~]# cat…...