使用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中的new的使用方法与注意事项
May 16 Javascript
javascript while语句和do while语句的区别分析
Dec 08 Javascript
js左右弹性滚动对联广告代码分享
Feb 19 Javascript
JS实现自动变化的导航菜单效果代码
Sep 09 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
Nov 26 Javascript
jQuery实现的多滑动门,多选项卡效果代码
Mar 28 Javascript
Node.js的环境安装配置(使用nvm方式)
Oct 11 Javascript
Angular开发实践之服务端渲染
Mar 29 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
Jul 18 Javascript
Vue.js获取被选择的option的value和text值方法
Aug 24 Javascript
Vue列表渲染的示例代码
Nov 01 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
Nov 21 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获取mysql数据库中的所有表名的代码
2011/04/23 PHP
PHP安全防范技巧分享
2011/11/03 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
2018/03/03 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
Vue中使用方法、计算属性或观察者的方法实例详解
2018/10/31 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
python 获取计算机的网卡信息
2021/02/18 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
大学毕业生通用自我评价
2014/01/05 职场文书
影子教师研修方案
2014/06/14 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
风之谷观后感
2015/06/11 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书
深入解析MySQL索引数据结构
2021/10/16 MySQL
Python中的变量与常量
2021/11/11 Python
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python