亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > ASP.NET MVC使用Ajax的輔助的解決方法

ASP.NET MVC使用Ajax的輔助的解決方法

熱門標簽:杭州智能電話機器人 廈門四川外呼系統 泰州手機外呼系統軟件 百度地圖標注點擊事件 內蒙古智能電銷機器人哪家強 怎樣在地圖標注消火栓圖形 濟源人工智能電話機器人價格 山東防封電銷卡辦理套餐 地圖標注位置多的錢

前言:前面我們已經簡單的介紹過了MVC如何Jquery,因為我們如果使用Ajax的話必須要了解Jquery,這篇博客我們將大致了解一下ASP.NET MVC如何使用Ajax的輔助方法,此博客是我的讀書筆記,如果那里寫的不好,還請各位朋友提出來,我們共同學習。
1.準備工作
  (1)在MVC剛開始學習的時候,我們就需要介紹ASP.NET MVC框架中的HTML的輔助方法,但是這類文章現在已經很多了,而且個人感覺很簡單,所以沒有寫筆記,我在這里就不介紹了。
  (2)ASP.NET MVC框架中的HTML輔助方法,我們可以使用HTML輔助方法創建表單和指向控制器操作的鏈接,在ASP.NET MVC框架中還包含一組Ajax輔助方法,它們也可以用來創建表單和指向控制器操作的連接,但不同的是它們是異步進行的,當使用這些輔助方法時,不用編寫任何腳本代碼來實現程序的異步性。
  (3)在后臺,這些Ajax輔助方法依賴非侵入式MVC的Jquery擴展,如果使用這些輔助方法,就需要引入腳本文件jquery.unobtrusive-ajax.js,至于怎么引用我在上篇博客已經說過了,這里就不貼出代碼了。
2.Ajax的ActionLink方法
  (1)在Razor視圖中,AJAX輔助方法可以通過Ajax屬性訪問,和HTML輔助方法類似,Ajax屬性上的大部分Ajax輔助方法都是擴展方法(除了AjaxHelper類型之外)。
  (2)Ajax屬性的ActionLink方法可以創建一個具有異步行為的錨標簽?,F在我們可以在微軟發布的MVC3.0的MusicStore項目上面進行修改,誰如果沒有這個項目的話可以加地下的群,然后再群共享里面我共享了這個項目。在視圖”Views/Home/Index.cshtml”中添加下面的代碼。

復制代碼 代碼如下:

div id="dailydeal">
     @Ajax.ActionLink("點擊我", "DailyDeal", new AjaxOptions
     {
       UpdateTargetId="dailydeal",
       InsertionMode = InsertionMode.Replace,
       HttpMethod="Get"
     })
 /div>

  (3)ActionLink方法的第一個參數指定了連接文本,第二個參數是要異步調用的操作的名稱,類似于同名的HTML輔助方法。對于HTML輔助方法和Ajax輔助方法,顯著不同的是AjaxOptions參數,該參數指定了發送請求和處理服務器返回結果的方法,參數中還包括用來處理錯誤,顯示加載元素,顯示確認對話框等的選項。為了得到服務器的響應,需要在控制器HomeController上添加一個DailyDeal操作,代碼如下:

復制代碼 代碼如下:

 public ActionResult DailyDeal()
   {
     var album = GetDailyDeal();
     return PartialView("_DailyDeal", album);
   }
   private Album GetDailyDeal()
   {
     return storeDB.Albums.OrderBy(a => a.Price).First();
   }

 (4)Ajax操作連接的目標操作的返回值是純文本或HTML。下面的Razor代碼就在項目的Views/Home文件夾下的_DailyDeal.cshtml文件中。

 注解:Ajax.ActionLink生成的內容能夠獲得服務器的響應,并可以直接將新內容移植到頁面中,這時為什么呢?下面我們就介紹一下異步操作連接的工作原理。
3.HTML5特性
  (1)如果我們查看ActionLink方法渲染的標記,我們會看到如下代碼:
    a data-ajax="true" data-ajax-method="Get" data-ajax-mode="replace" data-ajax-update="#dailydeal" href="/Home/DailyDeal">點擊我/a>
  (2)非侵入式JavaScript的顯著特點就是在HTML中不包含任何JavaScript代碼,也就是說在HTML中看不到腳本代碼,如果仔細看的話就會發現ActionLink中指定的所有設置被編碼成了HTML元素的特性,并且這些編碼的大多數特性都有data-前綴,通常稱之為data-特性。
  (3)HTML 5規范為私有應用程序保留了data-特性,換句話說,web瀏覽器不會嘗試解釋data-特性的內容,因此可以放心的把自己的數據交給它,這些數據不會影響頁面的顯示或者渲染。
  (4)向應用程序中添加jquery.unobtrusive-ajax文件的目的是查找特定的data-特性,然后操縱元素使其表現出不同的行為。
  (5)所有的ASP.NET MVC AJAX特性都使用data-特性。
4.Ajax表單
  (1)下面我們實現另外一種情形,要在音樂商店的首頁為用戶添加一個查找藝術家的功能,因為需要用戶的輸入,所以必須在頁面上面放一個form標簽,但這不是一個普通的標簽,而是一個異步表單。下面這段代碼我們看一下:

復制代碼 代碼如下:

@using (Ajax.BeginForm("ArtistSearch", "Home", new AjaxOptions
   {
     InsertionMode = InsertionMode.Replace,
     HttpMethod = "GET",
     OnFailure = "searchFailed",
     LoadingElementId = "ajax-loader",
     UpdateTargetId = "searchresults",
   }))
   {
     input type="text" name="q" />
     input type="submit" value="Search" />
     img id="ajax-loader" src="@Url.Content("~/Content/Images/ajax-loader.gif")" style="display:none" />
   }

  (2)再要渲染的表單中,當用戶單擊提交按鈕時,瀏覽器就會向控制器HomeController的ArtistSearch操作發送異步GET請求,注意上面的代碼已經指定了LoadingElementId作為其中的一個選項,當執行異步請求時,客戶端框架會自動的顯示這個元素,通常情況下,在這個元素內部會出現一個具有動畫效果的微調框,來告知用戶后臺正在進行一些處理,此外,還有一個OnFailure選項,這些選項包括許多參數,可以設置它們以捕獲來自Ajax請求的各種客戶端事件,如OnBegin,OnComplete,OnSuccess和OnFailure等,可以給這些參數賦予一個JavaScript函數的名稱,當事件觸發時,調用該函數,上面的代碼就為OnFailure指定了一個JavaScript函數,代碼如下:
  script type="text/javascript">
    function searchFailed() {
      $("#searchresults").html("對不起,查詢有問題");
    }
  /script>
  (3)如果服務器代碼返回一個錯誤,就意味著AJAX輔助方法都執行失敗了,此時,你可能想捕獲OnFailure事件,如果用戶單擊”search”按鈕而頁面沒有反應,我們可能就會感到困惑,跟前面代碼所做的一樣,可以顯示一個錯誤提示信息,至少讓他們知道我們已經盡力了。
  (4)輔助方法BeginForm的輸出類似于輔助方法ActionLink,最后,當用戶單擊提交按鈕提交表單的時候,服務器會接受到一個Ajax請求,并可能以任意格式的內容作出響應,當客戶端收到來自服務器端的響應時,非侵入式腳本就會將相應的內容放入Dom中。
  (5)對于這個例子,控制器操作需要查詢數據庫并且渲染一個分部視圖,此外,操作還要返回純文本,但同時又想把藝術家放到一個列表中,因此,在HomeControler中寫入如下的方法代碼:
復制代碼 代碼如下:

 public ActionResult ArtistSearch(string q)
   {
     var artists = GetArtists(q);
     return PartialView(artists);
   }

   private ListArtist> GetArtists(string q)
   {
     return storeDB.Artists.Where(a => a.Name.Contains(q)).ToList();
   }

  (6)該分部視圖利用模型構建列表,它位于項目的Views/Home文件夾下的視圖ArtistSearch.cshtml。

復制代碼 代碼如下:

@model IEnumerableMvcMusicStore.Models.Artist>
   @{
     Layout = null;
   }
   !DOCTYPE html>
   html>
     head>
     title>ArtistSearch/title>
     /head>
     body>
       div id="searchresults">
         ul>
           @foreach (var item in Model)
             {
               li>@item.Name/li>
             }
         /ul>
       /div>
     /body>
   /html>

5.web.config文件里的AJAX設置
  (1)默認情況下,非侵入式JavaScript和客戶端驗證在ASP.NET MVC應用程序中是啟用的,然后,我們可以通過web.config文件中的設置改變這些行為,如果打開新應用程序根目錄下的web.config文件,就會看到下面的appSettings配置節點:
  appSettings>
    add key="webpages:Version" value="1.0.0.0"/>
    add key="ClientValidationEnabled" value="true"/>
    add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  /appSettings>
  (2)如果想在整個應用程序中禁用這兩個特性中的任意特性,只需要將響應特性的value值修改為false即可,另外,還可以逐視圖是的控制這些設置,HTML輔助方法EnableClientValidation和EnableUnobtrusiveJavaScript在一個具體視圖中重寫了這些配置設置。
  (3)由于現有的自定義腳本都是依賴與Microsoft AJAX庫而不是Jquery庫,因此禁用這些特性的主要原因是維護應用程序的向后兼容性。

  注:下篇MVC的博客我們將把注意力轉向ASP.NET MVC框架的另外一個內置AJAX特性-對客戶端驗證的支持。
作者:韓迎龍
出處:http://www.cnblogs.com/hanyinglong

您可能感興趣的文章:
  • asp.net“服務器應用程序不可用” 解決方法
  • ASP.NET MVC運行出現Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法
  • ASP.NET MVC中解析淘寶網頁出現亂碼問題的解決方法
  • asp.net中mvc使用ajax提交參數的匹配問題解決探討
  • 使用asp.net MVC4中的Bundle遇到的問題及解決辦法分享
  • ASP.NET在MVC中MaxLength特性設置無效的解決方法
  • asp.net mvc3.0安裝失敗如何解決
  • 解決asp.net mvc UpdateModel更新對象后出現null問題的方法
  • ASP.NET MVC命名空間時引起錯誤的解決方法
  • 解決Asp.net Mvc返回JsonResult中DateTime類型數據格式問題的方法

標簽:新鄉 朔州 臺州 百色 喀什 朝陽 洛陽 周口

巨人網絡通訊聲明:本文標題《ASP.NET MVC使用Ajax的輔助的解決方法》,本文關鍵詞  ASP.NET,MVC,使用,Ajax,的,輔助,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET MVC使用Ajax的輔助的解決方法》相關的同類信息!
  • 本頁收集關于ASP.NET MVC使用Ajax的輔助的解決方法的相關信息資訊供網民參考!
  • 推薦文章
    二级片在线观看| 一级女性全黄生活片免费| 亚洲 激情| 国产综合91天堂亚洲国产| 一级女性大黄生活片免费| 香蕉视频久久| 午夜在线影院| 亚洲第一页乱| 欧美激情一区二区三区在线| 国产麻豆精品免费密入口| 成人影院久久久久久影院| 可以在线看黄的网站| 你懂的福利视频| 999精品在线| 91麻豆精品国产自产在线观看一区| 国产伦理精品| 一级女性大黄生活片免费| 国产成人女人在线视频观看| 色综合久久天天综合观看| 黄视频网站免费| a级毛片免费观看网站| 99久久精品国产国产毛片| 久久成人亚洲| 国产亚洲免费观看| 久草免费在线色站| 国产a视频| 国产91精品一区| 四虎影视库| 国产成人精品综合| 成人a级高清视频在线观看| a级精品九九九大片免费看| 欧美另类videosbestsex视频| 你懂的国产精品| 日本免费乱理伦片在线观看2018| 精品久久久久久免费影院| 亚洲 激情| 国产精品自拍在线| 日韩av东京社区男人的天堂| 成人免费一级纶理片| 国产精品123| 国产a毛片| 天天做日日干| 国产91丝袜高跟系列| 日日夜人人澡人人澡人人看免| 中文字幕97| 99热热久久| 99久久精品国产免费| 精品国产一区二区三区久| 九九久久99| 日韩av成人| 欧美国产日韩精品| 国产麻豆精品免费密入口| 一级女性大黄生活片免费| 一级毛片视频免费| 欧美α片无限看在线观看免费| 欧美另类videosbestsex | 亚洲 男人 天堂| 你懂的日韩| 成人高清护士在线播放| 成人影视在线播放| 日韩男人天堂| 国产视频在线免费观看| 成人高清视频免费观看| 日韩免费在线视频| 久久99中文字幕| 亚洲第一色在线| 欧美α片无限看在线观看免费| 国产精品自拍在线| 999久久66久6只有精品| 可以免费在线看黄的网站| 午夜精品国产自在现线拍| 国产国语对白一级毛片| 99久久精品国产免费| 99久久网站| 欧美大片a一级毛片视频| 你懂的福利视频| 亚洲精品永久一区| 久久国产影院| 青青久久国产成人免费网站| 午夜久久网| 国产精品自拍在线| 尤物视频网站在线| 99久久精品国产免费| 久久国产一久久高清| 欧美激情在线精品video| 日日爽天天| 成人影视在线播放| 精品国产三级a| 黄视频网站在线观看| 天天色成人| 国产不卡在线看| 亚欧成人乱码一区二区| 天堂网中文在线| 久久国产一区二区| 国产成a人片在线观看视频| 国产91素人搭讪系列天堂| 欧美国产日韩在线| 国产伦精品一区二区三区在线观看| 国产一区二区精品尤物| 国产不卡福利| 黄色免费网站在线| 黄视频网站在线观看| 在线观看成人网| 99久久网站| 欧美另类videosbestsex | 亚洲精品中文一区不卡| 国产欧美精品午夜在线播放| 四虎影视库| 韩国三级香港三级日本三级la| 国产一区免费在线观看| 国产91精品一区二区| 精品视频免费看| 黄视频网站免费| 国产美女在线观看| 日韩在线观看视频网站| 午夜欧美成人香蕉剧场| 日韩中文字幕一区二区不卡| 99色视频在线观看| 免费一级片在线| 日韩专区亚洲综合久久| 九九免费精品视频| 成人免费网站久久久| 欧美一级视频高清片| 亚洲第一页乱| 日韩一级黄色大片| 精品国产一区二区三区久久久狼| 青青久久国产成人免费网站| 亚洲 国产精品 日韩| 青青久在线视频| 国产麻豆精品hdvideoss| 91麻豆精品国产自产在线观看一区| 黄色短视频网站| a级毛片免费全部播放| 日本免费看视频| 免费一级片在线观看| 国产高清在线精品一区二区| 一级毛片看真人在线视频| 精品在线观看国产| 免费国产一级特黄aa大片在线| 成人免费高清视频| 欧美另类videosbestsex视频| 国产伦精品一区二区三区在线观看| 成人影院久久久久久影院| 国产精品自拍在线| 欧美激情中文字幕一区二区| 国产国语对白一级毛片| 可以免费看毛片的网站| 欧美另类videosbestsex高清 | 在线观看成人网 | 91麻豆国产级在线| 天堂网中文字幕| 国产91精品一区| 午夜久久网| 久久国产一久久高清| 日韩专区第一页| 亚欧视频在线| 99热精品在线| 夜夜操天天爽| 国产麻豆精品高清在线播放| 国产高清在线精品一区二区| 尤物视频网站在线| 青青久在线视频| 久久99中文字幕| 欧美大片毛片aaa免费看| 你懂的日韩| 91麻豆爱豆果冻天美星空| 欧美日本免费| 黄色免费网站在线| 二级特黄绝大片免费视频大片| 精品视频在线观看一区二区| 可以免费在线看黄的网站| 国产视频一区在线| 亚欧成人毛片一区二区三区四区 | 欧美电影免费| 国产一区二区精品| 久久精品免视看国产成人2021| 天天做日日干| 日韩中文字幕在线观看视频| 国产不卡精品一区二区三区| 韩国妈妈的朋友在线播放| 亚洲精品中文一区不卡| 青青久久精品| 欧美a级大片| 一级女性全黄久久生活片| 日本特黄特色aa大片免费| 成人a大片高清在线观看| 成人高清视频免费观看| 免费的黄色小视频| 日韩av成人| 成人影视在线观看| 99热热久久| 九九九网站| 欧美激情伊人| 久久精品免视看国产明星| 四虎精品在线观看| 美女免费黄网站| 国产一区国产二区国产三区| 99久久精品国产高清一区二区| 国产精品免费精品自在线观看| 美女被草网站|