原文: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...
AJAX助手主要用于創(chuàng)建已啟用AJAX的元素來執(zhí)行異步請(qǐng)求,如啟用了Ajax的表單或鏈接。AJAX助手是AJAXHelper類的擴(kuò)展方法,包含在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)添加代碼塊來實(shí)現(xiàn)。
在AjaxOptions類定義了用來為AJAX請(qǐng)求生命周期內(nèi)的不同階段指定回調(diào)函數(shù)的屬性。通過AjaxOptions類為AJAX助手提供了以下屬性:
屬性 | 描述 |
Url | 指定要請(qǐng)求的服務(wù)器的地址 |
Confirm | 指定將要顯示給最終用戶的確認(rèn)對(duì)話框內(nèi)消息。當(dāng)用戶在確認(rèn)對(duì)話框內(nèi)單擊OK按鈕,Ajax將執(zhí)行調(diào)用。 |
OnBegin | 指定在發(fā)送Ajax請(qǐng)求前要調(diào)用的JavaScript函數(shù)名稱。 |
ONComplete | 指定在Ajax請(qǐng)求完成后要調(diào)用的JavaScript函數(shù)名稱。 |
OnSuccess | 指定在Ajax請(qǐng)求成功后要調(diào)用的JavaScript函數(shù)名稱。 |
OnFailure | 指定在Ajax請(qǐng)求失敗后要調(diào)用的JavaScript函數(shù)名稱。 |
LoadingElementId | 用來指定在Ajax請(qǐng)求期間用來顯示進(jìn)度信息或動(dòng)畫的容器的id |
LoadingElementDuration | 指定進(jìn)度信息或動(dòng)畫的持續(xù)時(shí)間,單位為毫秒 |
UpdateTargetId | 指定用來填充action方法返回的HTML的目標(biāo)容器的id |
InsertionMode | 指定目標(biāo)容器的填充防守??蛇x擇值包括InsertAfter、 InsertBefore 和Replace(默認(rèn)值) |
默認(rèn)情況下,Web瀏覽器允許AJAX調(diào)用Web應(yīng)用程序源站點(diǎn)的數(shù)據(jù),即托管服務(wù)器的站點(diǎn)。這樣做的目的是為了防止各類安全問題,如跨站腳本(XSS)***。不過,有時(shí)候還是需要與外部托管的API進(jìn)行交互,如Twitter或Google。因此,要與這些外部的API或服務(wù)器進(jìn)行交互的Web應(yīng)用程序必須支持JSONP請(qǐng)求或跨資源共享(CORS)。在默認(rèn)情況下,ASP.NET MVC是不支持JSONP或CORD的,為此,需要做一點(diǎn)點(diǎn)的編碼和配置。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。