使用jQuery輕鬆實現Ajax的執行個體代碼_jquery

來源:互聯網
上載者:User
產生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”,按“搜尋”,在頁面沒有重新整理的情況下顯示出查詢到的資料,如下圖:

另外,在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>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.