原文:Understanding AJAX Helpers in ASP.NET MVC
作者:
Shailendra Chauhan works as Software Analyst at reputed MNC and has more than 5 years of hand over Microsoft .NET technologies. He is a .NET Consultant and is the founder & chief editor of www.dotnet-tricks.com and www.dotnetinterviewtricks.com blogs. He is author of book ASP.NET MVC Interview Questions and Answers.
He loves to work with web applications and mobile apps using Microsoft technology including ASP.NET, MVC, C#, SQL Server, WCF, Web API, Entity Framework,Cloud Computing, Windows Azure, jQuery, jQuery Mobile, Knockout.js, Angular.js and many more web technologies. More...
創(chuàng)新互聯(lián)建站成都網(wǎng)站建設(shè)按需制作網(wǎng)站,是成都網(wǎng)站營銷推廣公司,為成都建筑動畫提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站營銷推廣熱線:028-86922220
AJAX助手主要用于創(chuàng)建已啟用AJAX的元素來執(zhí)行異步請求,如啟用了Ajax的表單或鏈接。AJAX助手是AJAXHelper類的擴展方法,包含在System.Web.Mvc.Ajax命名空間中。
AJAX HTML | 元素示例 |
基于action/controller的啟用了AJAX的鏈接 | @Ajax.ActionLink("Load Products", "GetProducts", new AjaxOptions {UpdateTargetId = "Products-container", HttpMethod = "GET" }) 輸出:Load Products |
ASP.NET支持基于JQuery非介入式的AJAX。非介入式意味著可以使用輔助方法來定義Ajax功能,而不是通過在視圖內(nèi)添加代碼塊來實現(xiàn)。
在AjaxOptions類定義了用來為AJAX請求生命周期內(nèi)的不同階段指定回調(diào)函數(shù)的屬性。通過AjaxOptions類為AJAX助手提供了以下屬性:
屬性 | 描述 |
Url | 指定要請求的服務(wù)器的地址 |
Confirm | 指定將要顯示給最終用戶的確認(rèn)對話框內(nèi)消息。當(dāng)用戶在確認(rèn)對話框內(nèi)單擊OK按鈕,Ajax將執(zhí)行調(diào)用。 |
OnBegin | 指定在發(fā)送Ajax請求前要調(diào)用的JavaScript函數(shù)名稱。 |
ONComplete | 指定在Ajax請求完成后要調(diào)用的JavaScript函數(shù)名稱。 |
OnSuccess | 指定在Ajax請求成功后要調(diào)用的JavaScript函數(shù)名稱。 |
OnFailure | 指定在Ajax請求失敗后要調(diào)用的JavaScript函數(shù)名稱。 |
LoadingElementId | 用來指定在Ajax請求期間用來顯示進(jìn)度信息或動畫的容器的id |
LoadingElementDuration | 指定進(jìn)度信息或動畫的持續(xù)時間,單位為毫秒 |
UpdateTargetId | 指定用來填充action方法返回的HTML的目標(biāo)容器的id |
InsertionMode | 指定目標(biāo)容器的填充防守??蛇x擇值包括InsertAfter、 InsertBefore 和Replace(默認(rèn)值) |
默認(rèn)情況下,Web瀏覽器允許AJAX調(diào)用Web應(yīng)用程序源站點的數(shù)據(jù),即托管服務(wù)器的站點。這樣做的目的是為了防止各類安全問題,如跨站腳本(XSS)***。不過,有時候還是需要與外部托管的API進(jìn)行交互,如Twitter或Google。因此,要與這些外部的API或服務(wù)器進(jìn)行交互的Web應(yīng)用程序必須支持JSONP請求或跨資源共享(CORS)。在默認(rèn)情況下,ASP.NET MVC是不支持JSONP或CORD的,為此,需要做一點點的編碼和配置。