MVC中使用JQuery方式进行异步请求和使用自带方式进行异步请求
在MCV中使用异步请求可以很很高效地进行前台和后台的数据传递,在这里,笔者为初学者介绍两种在MVC中常用的异步请求处理方式。
在这里,我们通过在一个页面中放置一个按钮来异步获取当前服务器端的系统时间为例进行讲述。
第一种:使用JQuery方式进行异步请求
由于在最新的VS中(笔者用的是13版的),当我们创建一个MVC项目时,VS会自动向项目中添加JQuery库,所以我们只需要将相应的库引入到我们的项目中即可。
1、创建一个MVC4的基本项目,使用Razor视图引擎。然后创建一个Controller,取名为Home,并在Home.cs中添加一个Action来模拟从服务器端获取系统时间,示例代码:
public ActionResult GetDate()
{
System.Threading.Thread.Sleep();
return Content(DateTime.Now.ToString());
}
2、创建一个Controller,取名为HomeController,并创建一个Action和一个视图和一个用来模拟从服务器获取数据的Action,示例代码:
public class HomeController : Controller
{
//
// GET: /Home/ public ActionResult Index()
{
return View();
} public ActionResult GetDate()
{
//模拟延迟发送数据
System.Threading.Thread.Sleep();
return Content(DateTime.Now.ToString());
} public ActionResult JQueryModel()
{
return View();
}
}

3、在对应的JQueryModel.cshtml文件中进行异步请求,示例代码:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>JQueryModel</title>
<script src="../../Scripts/jquery-1.8.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
//方法1:
$("#btn").click(function() {
$.get("/Home/GetDate", //格式:/Controller/Action
null, //传递过去的数据
function (data) { //请求成功后的回调函数
alert(data);
}
);
//方式2:
$.ajax({
url: "/Home/GetDate", //请求的地址(格式):/Control/Action
type: "POST", //发送请求的方式
success: function(data) { //发送成功后的回调函数
alert(data);
}
});
});
});
</script>
</head>
<body>
<div>
<input type="button" id="btn" value="获取服务器端系统时间"/>
</div>
</body>
</html>
通过上面提供的两种JQuery就可以用异步请求的方式来获取服务器端数据。
第二种:使用自带方式进行异步请求
1、创建一个Action,取名为MvcModel,并为其创建一个视图,示例代码:
public ActionResult MvcModel()
{
return View();
}
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>MvcModel</title>
<script src="../../Scripts/jquery-1.8.2.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script type="text/javascript">
function success(data) {
alert(data);
}
</script>
</head>
<body>
<div>
@using (Ajax.BeginForm("GetDate", "Home",new AjaxOptions()
{
HttpMethod = "POST",
OnSuccess = "success"
}))
{
<div>
<input type="submit" id="btn" value="获取服务器端系统时间" />
</div>
}
</div>
</body>
</html>
通过这个方法,我们依然可以获取到服务器端系统时间。
笔者认为,这两种方法并没有什么优劣之分,关键是需要看开发中具体情况使用较为方便的方法,通过以上的实例,希望新手可以对MVC中的异步请求有一定的了解。
MVC中使用JQuery方式进行异步请求和使用自带方式进行异步请求的更多相关文章
- [转]如何在.NET MVC中使用jQuery并返回JSON数据
本文转自:http://blog.sina.com.cn/s/blog_48e42dc90100xp1p.html 二.开始实践 - jQuery端 假设我们要从服务器端获取一个文章列表,并把文章条目 ...
- asp.net mvc中使用jquery H5省市县三级地区选择控件
地区选择是项目开发中常用的操作,本文讲的控件是在手机端使用的选择控件,不仅可以用于实现地区选择,只要是3个级别的选择都可以实现,比如专业选择.行业选择.职位选择等.效果如下图所示: 附:本实例asp. ...
- 如何在.NET MVC中使用jQuery并返回JSON数据
http://blog.csdn.net/dingxingmei/article/details/9092249 开始实践 - jQuery端 假设我们要从服务器端获取一个文章列表,并把文章条目显示在 ...
- MVC中使用jquery的浏览器缓存问题
jquery在浏览器ajax调用的时候,对缓存提供了很好的支持,POST方式不能被缓存,使用POST的原因,明确了数据不能被缓存,或者避免JSON攻击(JSON返回数据的时候可以被入侵) jquery ...
- MVC 中引入Jquery文件的几种方法
方法1: <script src="@Url.Content("~/Scripts/jquery-1.9.1.js")" type="text/ ...
- ASP.NET MVC 中使用 jQuery 实现异步搜索功能
常见的几种异步请求方式: Ajax.BeginForm 异步提交文本的形式 Ajax.ActionLinkk 文本链接的形式 Client Validataion 客户端的认证 一.用jQuer ...
- ASP.NET MVC中使用jQuery时的浏览器缓存问题
介绍 尽管jQuery在浏览器ajax调用的时候对缓存提供了很好的支持,还是有必要了解一下如何高效地使用http协议. 首先要做的事情是在服务器端支持HTTP GET,定义不同的URL输出不同的数据( ...
- 在ASP.NET MVC中使用jQuery的Load方法加载静态页面的一个注意点
使用使用jQuery的Load方法可以加载静态页面,本篇就在ASP.NET MVC下实现. Model先行: public class Article { public int Id { get; s ...
- MVC中使用jquery uploadify上传图片报302错误
使用jquery uploadify上传图片报302错误研究了半天,发现我上传的action中有根据session判断用户是否登录,如果没有登录就跳到登陆页,所以就出现了302跳转错误.原来更新了fl ...
随机推荐
- Hibernate3.0配置
我的系统Win10(64x),Eclipse jee 2018-09 ,Sql2018版本. 以下是Hibernate3.0配置包 链接:https://pan.baidu.com/s/10Kizby ...
- (转)web前端知识精简
Web前端技术由 html.css 和 javascript 三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学 ...
- [Project] MiniSearch文本检索简介
1. 预处理过程 预处理主要用来事先生成程序在运行过程中可能用到的数据,以便加速处理时间. 预处理的过程主要生成程序所需的三个文件:网页库文件,网页位置信息文件和倒排索引文件. 网页库文件 其中网页库 ...
- oracle中order by造成分页错误
问题:今天在工作中,在service中调用分页查询列表接口的时候,返回的到页面的数据中总是存在缺失的数据,还有重复的数据. 分析:select * from (select ROWNUM rn,t.* ...
- LeetCode算法题(长期更新)
1.给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样 ...
- HTML中META标签的使用
一.META标签简介 <meta> 元素可提供有关页面的元信息,元数据总是以名称/值的形式被成对传递的. <meta> 标签位于文档的头部,不包含任何内容. <meta& ...
- koa-static与react-create-app搭配的路径
概述 前端路由与后端路由的结合一直是一个难题.koa-static这个中间件能够把静态资源"搬到"后端路由上面去,react-create-app在不解构的情况下只会把资源打包到b ...
- Android 开发工具推荐
简评: 自己过去在 Android 开发中发现的好工具,在这里分享给大家.: ) Library methods count 每一个 Android App 的开发中都会用到很多的库,这个工具能够让你 ...
- 关于ASP.Net Core Web及API身份认证的解决方案
6月15日,在端午节前的最后一个工作日,想起有段日子没有写过文章了,倒有些荒疏了.今借夏日蒸蒸之气,偷得浮生半日悠闲.闲话就说到这里吧,提前祝大家端午愉快(屈原听了该不高兴了:))!.NetCore自 ...
- mysql 查看建表语句
show create table `table_name`; 结果如下: