您好,登錄后才能下訂單哦!
怎么在ASP.NET中利用AjaxPro實現前后端交互?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
搭建環境。
啟動Visual Studio ,我的版本是2012啊,不過這個不影響的。先創建一個網站項目, 在項目中加入 Bin 目錄,再添加一個 Index 頁面。
然后,我們需要去網上下載 AjaxPro.2.dll 百度一下就一堆鏈接,這里我就不多說什么了。然后把下載到的 AjaxPro.2.dll 的文件復制或引入到 Bin 目錄中。接著,在 Web.config 的 <system.web> 標簽下寫入以下內容。
<httpHandlers> <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/> </httpHandlers>
并且在服務器后臺類中,作以下修改:
using AjaxPro; //(1) AjaxPro.Utility.RegisterTypeForAjax(typeof(Index)); //(2) [AjaxPro.AjaxMethod] //(3)
(1):引入 AjaxPro 命名空間
(2):注冊類信息到前臺頁面
(3):每個前臺頁面需要調用的函數前面加上這個
這里我這有個實例,注意一點:在 Page_Load() 函數當中,使用了一個判斷。 if(Page.IsCallback) 它的作用是它 獲得一個值,表示頁面請求是否是回調的結果。它的一個特殊的回傳,所以往返總是發生;但是,與傳統的回發不同,腳本回調不會重繪整個頁面。 這是在別的博主那里爬來的,這是原文,也是個人的一個小編程習慣,我也不知道具體有什么用,但是我就是知道有用。
以上,咱們就把這個 AjaxPro.2 環境搭建完了。
二. 接著,就開始調用了。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>AjaxPro.2.dll</title> <script> function show() { //(1) var name = Index.getName().value; alert("My Name is :" + name); } </script> </head> <body> <form id="form1" runat="server"> <div> <input type="button" value="show" onclick="show()" /> </div> </form> </body> </html>
這里, Index 是這個類的類名,不知道還記不記得。咱們寫過這樣一段代碼 AjaxPro.Utility.RegisterTypeForAjax(typeof(Index)); 在配置環境的時候申明的類名。前端頁面也是通過這個找到我們的類的。.value 也是一個重點,我記的我第一次用這個插件的時候。返回一個 Password 判斷是否登陸成功,一直都是失敗,這個插件頁面用日志信息,我就只能一個一個 alert 終于讓我抓著了,如果這里不用 value 會獲取很多實際應用用不上的信息,這里需要注意。
1)以為這樣就可以調用成功了?太天真了,這里咱們說第一個細節:改變項目的托管管道模式
鼠標單擊選中這個項目,然后按 F4 鍵,會出現這個項目的屬性。將這個屬性改成傳統型,就行了。如果是集成,則會報 500.23
2)還有一點,也是一個錯誤。這種錯誤編譯時不會出錯,加載頁面時也不出錯。只有調用到 AjaxPro.2 的是時候才報錯Uncaught ReferenceError: Index is not defined 當調用后臺代碼的不起作用時就需要注意是否是這個問題,因為這個報錯它不會出現在頁面,也不會被編譯。想要看到這個錯誤,必須按 F12 頁面調試,我知道Google Chrome 瀏覽器 的錯誤顯示在 Console 選項卡當中,其他瀏覽器博主就不是特別清楚了。
這個錯誤的原因啊,博主也查了許多資料,但是很少有具體的描述。這里博主也只能做一個博主自己的總結,如果有人知道哪里有錯誤,希望各位能積極指正(別客氣,互相進步啊!!)。博主的分析呢,就是因為搭建環境時,又什么地方出了問題。 搭建環境博主剛剛也在前文中講的比較清楚了,如果出現這個錯誤,應該有 7 成是這個原因。
3)這也是一個博主告訴我的細節啊!他這么說的:調用的時候,不一定要用聲明的那個類名喔。可以使用 [AjaxNamespace("DEMO")] 這個標簽,對這個類進行重命名。博主試了一下,確實是可以的。把這個標簽放在被調用的類前面,記得是類前面哦。就可以了。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。