使用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 1.3 和 Validation 验证插件1.5.1
Jul 09 Javascript
使用jquery为table动态添加行的实现代码
Mar 30 Javascript
jquery 插件学习(一)
Aug 06 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 Javascript
使用jquery解析XML的方法
Sep 05 Javascript
node.js中的path.basename方法使用说明
Dec 09 Javascript
浏览器中url存储的JavaScript实现
Jul 07 Javascript
freemarker判断对象是否为空的方法
Aug 13 Javascript
jQuery弹出窗口打开链接的实现代码
Dec 24 Javascript
JavaScript ES6常用基础知识总结
Feb 09 Javascript
Vue作用域插槽实现方法及作用详解
Jul 08 Javascript
vue router 动态路由清除方式
May 25 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
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
php实现在线考试系统【附源码】
2018/09/18 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
python list转dict示例分享
2014/01/28 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
高中数学教学反思
2014/01/30 职场文书
公司业务员岗位职责
2014/03/18 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
2014年双拥工作总结
2014/11/21 职场文书
学校端午节活动总结
2015/02/11 职场文书