使用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实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
javascript 可以拖动的DIV(二)
Jun 26 Javascript
js 弹出菜单/窗口效果
Oct 30 Javascript
浅析JQuery中的html(),text(),val()区别
Sep 01 Javascript
JQuery给网页更换皮肤的方法
May 30 Javascript
jquery超简单实现手风琴效果的方法
Jun 05 Javascript
js仿支付宝多方框输入支付密码效果
Sep 27 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
Nov 10 Javascript
Vue2.0 slot分发内容与props验证的方法
Dec 12 Javascript
利用angular、react和vue实现相同的面试题组件
Feb 19 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
Oct 26 jQuery
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
Sep 04 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
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
js中function()使用方法
2013/12/24 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
浅析JS原型继承与类的继承
2016/04/07 Javascript
Vue表单实例代码
2016/09/05 Javascript
underscore之Collections_动力节点Java学院整理
2017/07/10 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
2020/02/26 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
Python定义一个函数的方法
2020/06/15 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
三星美国官网:Samsung美国
2017/02/06 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
初中英语教学反思
2014/01/25 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
设计大赛策划方案
2014/06/13 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
毕业典礼致辞
2015/07/29 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python