使用jQuery轻松实现Ajax的实例代码


Posted in Javascript onAugust 16, 2010

生成Asp.Net MVC框架后,已经包含了jQuery脚本,相关环境设置可参看我的另一篇文章:Asp.Net MVC实例。这里,我们仍然借助实例中的环境。在生成的框架中的Scripts文件夹中已经可以看到jQuery的脚本。
我们在TestModel.cs中创建一个函数,以取得Json数据,仍然使用Tets表,包含两个字段:Id和Name。

//JsonDataArray 
public static Array GetJsonArray(String name) 
{ 
Array data = null; 
try 
{ 
data = (from c in testDb.test 
where c.name.Contains(name) 
select new { c.id, c.name }).ToArray(); 
}catch(ArgumentNullException ae) 
{} 
return data; 
}

Json数据,简单来说,即使用Key-Value数组形式的数据。然后按默认选项创建一个控制器,生成的控制器只有一个方法:Index()。我们再创建一个方法,以供jQuery调用。完成的代码如下:JQueryController.cs。注意:在MVC2.0中默认情况中禁止jQuery调用服务器数据,所以必须在代码中增加访问权限:JsonRequestBehavior.AllowGet。
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using MvcWeb.Models; 
namespace MvcWeb.Controllers 
{ 
public class JQueryController : Controller 
{ 
// 
// GET: /JQuery/ 
public ActionResult Index() 
{ 
return View(); 
} 
public JsonResult FindByName(string name) 
{ 
return Json(TestModel.GetJsonArray(name), JsonRequestBehavior.AllowGet); 
} 
} 
}

然后在Index()上按右键,按默认选项生成一个视图,可在Views/JQuery看到生成的代码:Index.aspx,生成的代码非常简单,我们再插入Script代码,完成如下:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
JQuery 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
<script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
<script language="javascript" type="text/javascript"> 
$(document).ready(function() { 
$('#updater').hide(); 
$('#dataHead').hide(); 
$('#linkFind').click(function(event) { 
event.preventDefault(); 
$('#dataHead').show(); 
$('#updater').show(); 
$.getJSON('/JQuery/FindByName/', { name: $('#textSearch')[0].value }, function(data) { 
$('#testList > div').remove(); 
$.each(data, function(i, item) { 
$('#testList').append('<div>' + item.id + ' ' + item.name + '</div>'); 
}); 
}); 
$('#updater').hide(); 
}); 
}); 
</script> 
<h2>使用jQuery实现Ajax实例</h2> 
<div id="query"><%= Html.TextBox("textSearch") %> <a href="#" id="linkFind">搜索</a>    
<span class="update" id="updater"> Loading...   </span></div> 
<div id="dataHead" >ID Name</div> 
<div id="testList"></div> 
</asp:Content>

运行项目,在文本框中输入“t”,按“搜索”,在页面没有刷新的情况下显示出查询到的数据,如下图:
使用jQuery轻松实现Ajax的实例代码
另外,在Ajax开发中,还可以使用Ajax的基础函数$.ajax进行调试,当出现错误时,可以打印错误信息。例如,对上述的调用可以用下面代码调试:
<script language="javascript" type="text/javascript"> 
$(document).ready(function() { 
$('#linkFind').click(function(event) { 
event.preventDefault(); 
var handleData = function(data) { alert("success:" + data); } 
var handleErr = function(e) { 
alert(e.responseText); 
} $.ajax({ 
type: "get", 
url: "/Jquery/FindByName", 
data: "name=t", 
success: handleData, 
error: handleErr 
}); 
}); 
}); 
</script>
Javascript 相关文章推荐
jquery实现居中弹出层代码
Aug 25 Javascript
jQuery实现左右切换焦点图
Apr 03 Javascript
详解jQuery中的元素的属性和相关操作
Aug 14 Javascript
使用JQuery在线制作ppt并在线演示源码特效
Sep 08 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
Dec 02 Javascript
underscore之Chaining_动力节点Java学院整理
Jul 10 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
Oct 31 Javascript
Canvas实现微信红包照片效果
Aug 21 Javascript
详解新手使用vue-router传参时注意事项
Jun 06 Javascript
webpack优化之代码分割与公共代码提取详解
Nov 22 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
Sep 16 Javascript
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
jQuery实现原理的模拟代码 -6 代码下载
Aug 16 #Javascript
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
Aug 13 #Javascript
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
Aug 13 #Javascript
jquery实用代码片段集合
Aug 12 #Javascript
JavaScript中使用构造函数实现继承的代码
Aug 12 #Javascript
javascript最常用与实用的创建类的代码
Aug 12 #Javascript
javascript中最常用的继承模式 组合继承
Aug 12 #Javascript
You might like
加强版phplib的DB类
2008/03/31 PHP
php读取3389的脚本
2014/05/06 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
Javascript 强制类型转换函数
2009/05/17 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
[原创]pip和pygal的安装实例教程
2017/12/07 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
营销部内勤岗位职责
2014/04/30 职场文书
教室标语大全
2014/06/21 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
三孔导游词
2015/02/05 职场文书
销售督导岗位职责
2015/04/10 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
Pygame如何使用精灵和碰撞检测
2021/11/17 Python