使用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 相关文章推荐
载入jQuery库的最佳方法详细说明及实现代码
Dec 28 Javascript
JS网页播放声音实现代码兼容各种浏览器
Sep 22 Javascript
jQuery实现可收缩展开的级联菜单实例代码
Nov 27 Javascript
JS实现静止元素自动移动示例
Apr 14 Javascript
jquery+ajax验证不通过也提交表单问题处理
Dec 12 Javascript
vue.js学习之递归组件
Dec 13 Javascript
Bootstrap table简单使用总结
Feb 15 Javascript
bootstrap可编辑下拉框jquery.editable-select
Oct 12 jQuery
Angularjs按需查询实例代码
Oct 30 Javascript
JS设计模式之状态模式概念与用法分析
Feb 05 Javascript
eslint 的三大通用规则详解
May 16 Javascript
解决layui轮播图有数据不显示的情况
Sep 16 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编程语言开发动态WAP页面
2006/10/09 PHP
在JavaScript中调用php程序
2009/03/09 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
python比较两个列表大小的方法
2015/07/11 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
python组合无重复三位数的实例
2018/11/13 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
Python使用xpath实现图片爬取
2020/09/16 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
标记环介质访问控制协议
2016/03/27 面试题
法律专业自我鉴定
2013/10/03 职场文书
水电工岗位职责
2014/02/12 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
python实现三次密码验证的示例
2021/04/29 Python
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript