使用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 相关文章推荐
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 Javascript
Node.js中require的工作原理浅析
Jun 24 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 Javascript
一个极为简单的requirejs实现方法
Oct 20 Javascript
Vue.js开发环境搭建
Nov 10 Javascript
jQuery插件autocomplete使用详解
Feb 04 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
Apr 27 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
Jul 11 Javascript
javascript函数的节流[throttle]与防抖[debounce]
Nov 15 Javascript
vue实现PC端分辨率适配操作
Aug 03 Javascript
vue组件暴露和.js文件暴露接口操作
Aug 11 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引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
JS分页的实现(同步与异步)
2017/09/16 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
python opencv 图像拼接的实现方法
2019/06/27 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
有原因的手表:Flex Watches
2019/03/23 全球购物
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
幼师专业求职推荐信
2013/11/08 职场文书
股东出资证明书范例
2014/10/04 职场文书
房屋认购协议书
2015/01/29 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
教你一步步实现一个简易promise
2021/11/02 Javascript
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏
Python实现简单得递归下降Parser
2022/05/02 Python