ASP.NET实战006:MVC使用 Ajax数据传递

2019 年 11 月 1 日2120

ASP.NET实战006:MVC使用 Ajax数据传递

建站运营 2019-10-26 02:54

查看: 958| 评论: 1| 发布者: 知行

??? ??С

简介:前面通过ASP.NET实战004:MVC数据传递我们了解了ASP.NET MVC模型中模型(model)、视图(view)、控制器(controller)之间的数据传递方法,ASP.NET MVC支持Model、ViewBag、ViewData、TempData、JqGrid插件、Ajax等多种方 ...

前面通过ASP.NET实战004:MVC数据传递我们了解了ASP.NET MVC模型中模型(model)、视图(view)、控制器(controller)之间的数据传递方法,ASP.NET MVC支持Model、ViewBag、ViewData、TempData、JqGrid插件、Ajax等多种方式发送数据。而在我们实际的开发过程中,使用ViewData和ViewBag等方式在Controller与View间进行数据传递存在着类型转换的问题,容易编译出错这样不仅影响服务器性能,而且存在安全问题同时也破坏了Controller与View的低耦合原则。

ASP.NET实战006:MVC使用 Ajax数据传递

为了降低Controller与View的耦合性,同时提高服务器的性能,实现真正的前后端分离,我们有必要对MVC模式进行改进。之前用用Vue+Django+MySQL做前后端分离项目的时候都是通过Axios技术实现数据请求的,这样我们同样可以借助这个逻辑,通过Ajax发送请求,当服务端接受该请求后将处理的数据通过JSON数据格式返回给视图,最后通过浏览器渲染呈现给用户。

ASP.NET实战006:MVC使用 Ajax数据传递

什么是Ajax

Ajax 是一种针对Web 服务器开发的Web应用程序的技术,可以实现浏览器与 Web 服务器之间异步数据传输(HTTP 请求),它的特点就是无需重新加载整个网页的情况下能够进行局部数据更新。当网页每次从服务器只需请求对应的信息进行局部更新,而不用刷新整个网页,这样不仅可以减少服务器压力,也可以节省带宽,提高响应速度,增强用户体验。

ASP.NET实战006:MVC使用 Ajax数据传递

MVC中使用 Ajax

由于MVC实现了前后端分类,所以在前端使用Ajax很简单,我们利用JQuery就可以轻松的实现Ajax,它对 Ajax 做了大量的封装分别是$.ajax()、$.load()、$.get()、$.post()、$.getScript()和$.getJSON()方法。使用的时候我们只要引入JQuery文件,在需要的地方使用对应的方法即可。

ASP.NET实战006:MVC使用 Ajax数据传递

登录示例

这里我们实现个简单的登录功能,在Login页面输入用户名和密码,验证通过之后跳转页面Dome页面。前端我们写个简单的登录,用3个input元素构建,类型分别是text、password、submit,样式我们先忽略主要实现功能。

ASP.NET实战006:MVC使用 Ajax数据传递

通过点击登录按钮来触发Ajax请求,这里的@section scripts是用来引入脚本的我在布局页_Layout.cshtml文件中定义了@RenderSection("scripts",required:false)方法,用来渲染其他子页中的脚本或样式的。这里我们是登录,所以要想服务器发送数据,这里我们可以采用$.post()方法通过 HTTP POST 请求从服务器载入数据来实现,$.post()方法有四个参数,分别是url( 请求地址)、data(请求数据)、function(请求成功后执行的回调函数)、dataType(数据类型),只有第一个参数是必须的,其他都可以为空,具体代码如下:

ASP.NET实战006:MVC使用 Ajax数据传递

后台接收数据,这里我写个简单的数据接收及验证,为了更容易理解暂时不进行数据库交互,先理解逻辑当从前端获取到的数据与我们指定的数据相符时我们就认为验证成功,反之则失败。这里的response是我定义的一个实例对象,用来返回处理状态和结果的。

ASP.NET实战006:MVC使用 Ajax数据传递

运行效果

到这里我们就实现了一个简单的登录功能测试了,通过Ajax实现了简单的数据交互,而且我们可以看到局部刷新的。这也是Ajax的特点,可以与服务器进行异步通信从而实现局部刷新的。同时Ajax会对数据进行过滤,只有确定需要从服务器读取新数据时,Ajax引擎才会向服务器提交请求。

ASP.NET实战006:MVC使用 Ajax数据传递

补全数据库操作

前面我把数据库给先忽略了,这样理解起来就简单了些,现在我把数据库补全,具体如何操作数据库可以参考ASP.NET实战002:MySQL数据库连接, 这里我创建一个MysqlHelper类来专门处理数据库操作,这里的GetDataTable方法用来返回一个DataTable数据表。

ASP.NET实战006:MVC使用 Ajax数据传递

接着我们修改下LoginController中的confirm方法,实例化MysqlHelper类,去数据库中查找我们从前端获取的用户名和密码(这里我暂时没做密码加密处理,所以数据库中密码暂时是明文,可以直接查询),GetDataTable方法会给我们返回查询结果,如果存在则说明是已注册用户则验证成功允许页面跳转,否则验证失败。

public JsonResult confirm(string user,string pwd)
{
UserInfo consumer = new UserInfo();
consumer.username = user;
consumer.password = pwd;
MysqlHelper sql = new MysqlHelper();
response rsq = new response();
DataTable dt = sql.GetDataTable(string.Format("select * from user where username='{0}' and password='{1}'", consumer.username, consumer.password));
if (dt != null)
{
rsq.state = true;
rsq.message = "验证成功!";
}
else
{
rsq.state = false;
rsq.message = "验证失败!";
}
return Json(rsq);
}

ASP.NET实战006:MVC使用 Ajax数据传递

【免责声明】本文仅代表作者或发布者个人观点,不代表SEO研究协会网(http://www.zjjv.com/)及其所属公司官方发声,对文章观点有疑义请先联系作者或发布者本人修改,若内容涉及侵权或违法信息,请先联系发布者或作者删除,若需我们协助请联系平台管理员,邮箱cxb5918@163.com(本平台不支持其他投诉反馈渠道,谢谢合作)。若需要学习以上相关知识请到巨推学院观看视频教程,网址http://www.zjjv.com/。

晕倒

感动

大哭

惊呆

口水

已有 1 人参与

会员评论

veryql

2019-10-26 02:55

ASP.NET实战006:MVC使用 Ajax数据传递,附登录实例

推荐阅读


2019-11-01 11:35

作者:ocean

微商火爆后抖商出现,但想卖货不是有套路就可以

文/东方亦落眼看双十一又要到了,各大平台的“花式卖货”也逐渐火热起来。在短视频领域中有“带货王子”之称的李佳琦却在最近的一次营销中翻了车。众所周知,李佳琦擅长的是卖口红,不过大概是不满足于在单一领域挣


2019-11-01 11:30

作者:zhouweisem

2019年消防安全知识培训

为确保泉峰办事处东宜社区安全稳定,预防重特大火灾事故,保障人民群众的生命财产安全,提高社区公共单位及居民对消防安全工作的认识,进一步掌握消防安全知识以及消防灭火器材的使用方法,常宁市孵化基地入驻组织东


2019-11-01 11:26

作者:小鬼彪彪

推广小技巧「新手干货」

一、推广小技巧1、直通车选品并不是店铺所有的产品都可以开直通车的,我们要先搞清楚此产品的市场需求到底有多大,否则即时我们前期把关键词养起来了,对店铺也是没什么效果的;同时宝贝搜索热度也不能小看的,因为


2019-11-01 11:18

作者:泊头企业号

水彩画成这样真厉害 超写实细腻感 过程步骤图供参考

(此处已添加圈子卡片,请到今日头条客户端查看)一组非常帅气的水彩人物肖像手绘,第一组是比较自由的笔触,虽然很精美光感很漂亮但是并不足够让人震撼。当然作为不是非常写实细腻的要求也是十分的优秀。但后面的这


2019-11-01 11:16

作者:ocean

消防工程师:现在好考吗?通过率这么低

消防工程师证书相信不用多做介绍,这几年可谓火遍大江南北,广告铺满网络各个地方。由于消防工程师证书含金量高,带来的利益比较大,报名门槛也较低,所以每年都有很多人走上报考之路。对于这些想要考取消防工程师证


2019-11-01 11:11

作者:hamelonghamelon

5G 时代最大的营销是短视频营销

最近有人说,5G 时代最大的营销是短视频营销。新媒体营销是时代给我们的机遇。而短视频是新媒体营销中变现最快的方式之一。抖音无疑是最成功的案例。现在很多品牌企业已经意识到抖音巨大的营销价值,小米、蒙牛、格


2019-11-01 11:09

作者:龚呆子

职场大神都在用的5个办公软件,从现在开始,提升你的工作效率

你是不是也曾烦恼过,为什么别人的工作效率永远比自己高很多。如果你想变得更优秀的话,那就进来看看吧。利用手中的这些APP,将自己的时间安排得更合理,提升办事效率。1、小睡眠如果你觉得自己的睡眠无法得到保障,


2019-11-01 11:02

作者:caryma

干货:运营自媒体如何实现盈利?

众所周知,自媒体要想获得长足的发展,有两个制约他们前进的最大障碍:一是内容的可持续性问题。如何持续地生产出受欢迎的优质内容,这应该是所有自媒体人都存在的共同难题。二是流量的变现,如何盈利的问题。自媒体


2019-11-01 11:00

作者:黑敏

头条抖音小程序正式上线,打通线上线下流量,你还坐得住吗?

抖音已经验证了短视频带货变现的模式,具体到知识付费领域,短视频作为切入用户场景的一个形式,直观的传达效果大大缩短了变现路径,配合推荐算法引流效果远超过传统推广渠道。但问题在于,现有的购物车、商品橱窗和


2019-11-01 10:55

作者:李小明

谷歌公布安卓系统高危漏洞,黑客可完全控制至少18款手机

10月4日,谷歌发布安卓高危漏洞,华为、三星、小米等至少18款设备受影响。目前该漏洞已被修复,并在10月安全更新中发布。谷歌发现了该漏洞在现实世界中使用的实例,并称以色列的NSO集团正在利用此漏洞。此前报道:谷

索要方式,请加微信:jutui7

快手商家号客服微信:jutui21

文章排行

TOP ARTICLES

ocean

微商火爆后抖商出现,但想卖货不是有套路就

文/东方亦落眼看双十一又要到了,各大平台的“花式卖货”也逐渐火热起来。在短视频领...

zhouweisem

2019年消防安全知识培训

为确保泉峰办事处东宜社区安全稳定,预防重特大火灾事故,保障人民群众的生命财产安全...

小鬼彪彪

推广小技巧「新手干货」

一、推广小技巧1、直通车选品并不是店铺所有的产品都可以开直通车的,我们要先搞清楚...

泊头企业号

水彩画成这样真厉害 超写实细腻感 过程步骤

(此处已添加圈子卡片,请到今日头条客户端查看)一组非常帅气的水彩人物肖像手绘,第...

ocean

消防工程师:现在好考吗?通过率这么低

消防工程师证书相信不用多做介绍,这几年可谓火遍大江南北,广告铺满网络各个地方。由...

hamelonghamelon

5G 时代最大的营销是短视频营销

最近有人说,5G 时代最大的营销是短视频营销。新媒体营销是时代给我们的机遇。而短视...

龚呆子

职场大神都在用的5个办公软件,从现在开始

你是不是也曾烦恼过,为什么别人的工作效率永远比自己高很多。如果你想变得更优秀的话...

caryma

干货:运营自媒体如何实现盈利?

众所周知,自媒体要想获得长足的发展,有两个制约他们前进的最大障碍:一是内容的可持...

ocean

微商火爆后抖商出现,但想卖货不是有套路就

文/东方亦落眼看双十一又要到了,各大平台的“花式卖货”也逐渐火热起来。在短视频领...

zhouweisem

2019年消防安全知识培训

为确保泉峰办事处东宜社区安全稳定,预防重特大火灾事故,保障人民群众的生命财产安全...

小鬼彪彪

推广小技巧「新手干货」

一、推广小技巧1、直通车选品并不是店铺所有的产品都可以开直通车的,我们要先搞清楚...

泊头企业号

水彩画成这样真厉害 超写实细腻感 过程步骤

(此处已添加圈子卡片,请到今日头条客户端查看)一组非常帅气的水彩人物肖像手绘,第...

ocean

消防工程师:现在好考吗?通过率这么低

消防工程师证书相信不用多做介绍,这几年可谓火遍大江南北,广告铺满网络各个地方。由...

hamelonghamelon

5G 时代最大的营销是短视频营销

最近有人说,5G 时代最大的营销是短视频营销。新媒体营销是时代给我们的机遇。而短视...

龚呆子

职场大神都在用的5个办公软件,从现在开始

你是不是也曾烦恼过,为什么别人的工作效率永远比自己高很多。如果你想变得更优秀的话...

caryma

干货:运营自媒体如何实现盈利?

众所周知,自媒体要想获得长足的发展,有两个制约他们前进的最大障碍:一是内容的可持...

0 0