使用jQuery轻松实现Ajax的实例代码

 更新时间:2010年08月16日 15:39:17   作者:  
在Asp.Net的MVC架构中使用jQuery是一件很容易的事情,而使用jQuery实现Ajax更加简单。
生成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") %>&nbsp;<a href="#" id="linkFind">搜索</a>&nbsp;&nbsp;&nbsp;
<span class="update" id="updater">&nbsp;Loading...&nbsp;&nbsp;&nbsp;</span></div>
<div id="dataHead" >ID Name</div>
<div id="testList"></div>
</asp:Content>

运行项目,在文本框中输入“t”,按“搜索”,在页面没有刷新的情况下显示出查询到的数据,如下图:

另外,在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>

相关文章

  • 基于cookie实现zTree树刷新后展开状态不变

    基于cookie实现zTree树刷新后展开状态不变

    这篇文章主要为大家详细介绍了如何基于cookie实现zTree树刷新后,展开状态不变,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • jquery弹出框插件jquery.ui.dialog用法分析

    jquery弹出框插件jquery.ui.dialog用法分析

    这篇文章主要介绍了jquery弹出框插件jquery.ui.dialog用法,结合实例形式分析了弹出框插件jquery.ui.dialog的功能、下载、使用方法与相关注意事项,需要的朋友可以参考下
    2016-08-08
  • 简单的jquery拖拽排序效果实现代码

    简单的jquery拖拽排序效果实现代码

    写了简单的跟随鼠标移动效果。这个拖拽排序的效果的区别在于: 运用了插入insertBefore 和 insertAfter 的方法
    2011-09-09
  • Jquery遍历Json数据的方法

    Jquery遍历Json数据的方法

    这篇文章主要介绍了Jquery遍历Json数据的方法,涉及jQuery遍历json格式数据的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • jq实现酷炫的鼠标经过图片翻滚效果

    jq实现酷炫的鼠标经过图片翻滚效果

    一个酷炫的图片翻滚效果要实现这个效果并不难,只要思路对了,一切都好办,下面有个不错的示例,大家可以参考下
    2014-03-03
  • jQuery实现的导航下拉菜单效果

    jQuery实现的导航下拉菜单效果

    这篇文章主要介绍了jQuery实现的导航下拉菜单效果,涉及jQuery响应鼠标事件动态操作页面元素的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • jQuery 网易相册鼠标移动显示隐藏效果实现代码

    jQuery 网易相册鼠标移动显示隐藏效果实现代码

    显示隐藏效果的实现主要是jquery层选择器的应用:当鼠标移动经过照片就显示设为封面删除,移开后就隐藏,此效果在web开发中经常会用到,感兴趣的朋友可以参考下哈
    2013-03-03
  • jquery dataTable 获取某行数据

    jquery dataTable 获取某行数据

    本篇文章主要介绍了jquery dataTable 获取某行数据的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-05-05
  • 为jQuery添加Webkit的触摸的方法分享

    为jQuery添加Webkit的触摸的方法分享

    这段代码是我在做13年一份兼职的时候无聊加上去的,为jQuery添加触摸事件的支持。因为做得有点无聊,所以就帮客户添加了用响应式网页+JS touch兼容了移动设备,主要是Webkit的移动设备
    2014-02-02
  • JQuery如何按name属性选择元素

    JQuery如何按name属性选择元素

    这篇文章主要介绍了JQuery如何按name属性选择元素问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论