使用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 相关文章推荐
脚本吧 - 幻宇工作室用到js,超强推荐base.js
Dec 23 Javascript
JS实现超精简响应鼠标显示二级菜单代码
Sep 12 Javascript
AngularJS使用ngMessages进行表单验证
Dec 27 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
Jan 22 Javascript
jQuery实现移动端手机商城购物车功能
Sep 24 Javascript
从0开始学Vue
Oct 27 Javascript
JavaScript实现时钟滴答声效果
Jan 29 Javascript
JavaScript异步上传图片文件的实例代码
Jul 04 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
Oct 25 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
Aug 08 jQuery
vue组件表单数据回显验证及提交的实例代码
Aug 30 Javascript
解决vue+elementui项目打包后样式变化问题
Aug 03 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
自动跳转中英文页面
2006/10/09 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
php实例分享之二维数组排序
2014/05/15 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
python 制作简单的音乐播放器
2020/11/25 Python
Django中使用Celery的方法步骤
2020/12/07 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
抽奖活动主持词
2014/03/31 职场文书
保护动物倡议书
2014/04/15 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
校园安全教育心得体会
2016/01/15 职场文书
Golang实现可重入锁的示例代码
2022/05/25 Golang