使用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 相关文章推荐
弹出广告特效代码(一个IP只弹出一次)
May 11 Javascript
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
Aug 08 Javascript
javascript中自定义对象的属性方法分享
Jul 12 Javascript
javascript异步编程的4种方法
Feb 19 Javascript
Js获取下拉框选定项的值和文本的实现代码
Feb 26 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
Aug 06 Javascript
关于JavaScript数组你所不知道的3件事
Aug 24 Javascript
Vue.js创建Calendar日历效果
Nov 03 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 Javascript
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
Sep 19 Javascript
Vue.js中v-bind指令的用法介绍
Mar 13 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 syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
jquery 可排列的表实现代码
2009/11/13 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
python回调函数的使用方法
2014/01/23 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
一份Java笔试题
2012/02/21 面试题
公司廉洁自律承诺书
2014/03/27 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
干部作风建设心得体会
2014/10/22 职场文书
2015元旦标语横幅
2014/12/09 职场文书