使用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 相关文章推荐
juqery 学习之三 选择器 层级 基本
Nov 25 Javascript
优化Jquery,提升网页加载速度
Nov 14 Javascript
js实现的点击div区域外隐藏div区域
Jun 30 Javascript
JS实现简单的图书馆享元模式实例
Jun 30 Javascript
jquery中的常见问题及快速解决方法小结
Jun 14 Javascript
js接收并转化Java中的数组对象的方法
Aug 11 Javascript
jquery mobile移动端幻灯片滑动切换效果
Apr 15 Javascript
js获取地址栏中传递的参数(两种方法)
Feb 08 Javascript
javascript 网页进度条简单实例
Feb 22 Javascript
vue之数据交互实例代码
Jun 16 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
vue的三种图片引入方式代码实例
Nov 19 Javascript
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
php获取地址栏信息的代码
2008/10/08 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
jQuery 方法大全方便学习参考
2010/02/25 Javascript
JavaScript开发规范要求(规范化代码)
2010/08/16 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
vue实现点击按钮下载文件功能
2019/10/11 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
python里反向传播算法详解
2020/11/22 Python
地球一小时倡议书
2014/04/15 职场文书
经费申请报告范文
2015/05/18 职场文书
运动会1000米加油稿
2015/07/21 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang