使用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中的prototype使用说明
Apr 13 Javascript
模拟电子签章盖章效果的jQuery插件源码
Jun 24 Javascript
使用javascript实现页面定时跳转总结篇
Sep 21 Javascript
浅析JavaScript中的隐式类型转换
Dec 05 Javascript
从js向Action传中文参数出现乱码问题的解决方法
Dec 29 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
Sep 22 Javascript
jQuery使用cookie与json简单实现购物车功能
Apr 15 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
正则表达式替换html元素属性的方法
Nov 26 Javascript
详解用webpack2搭建angular2的项目
Jun 22 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
Apr 01 Javascript
Javascript Worker子线程代码实例
Feb 20 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
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
简单PHP上传图片、删除图片实现代码
2010/05/12 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
js parseInt(&quot;08&quot;)未指定进位制问题
2010/06/19 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
js创建数组的简单方法
2016/07/27 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
python使用pil生成缩略图的方法
2015/03/26 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
三好学生演讲稿范文
2014/04/26 职场文书
关于安全的演讲稿
2014/05/09 职场文书
ktv好的活动方案
2014/08/15 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
导游词之上海豫园
2019/10/24 职场文书
react 路由Link配置详解
2021/11/11 Javascript