成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

介紹ASP.NET MVC中的MvcAjaxPanel

開發 后端
本文介紹ASP.NET MVC中的MvcAjaxPanel,MvcAjaxPanel的工作原理與UpdatePanel有頗多相似之處,也做到了一定程度上的透明。

也有評論認為,Controller中的邏輯不該根據一個請求AJAX與否而進行不同處理(Nikhil的解決方案使用RenderPartial 來替代RenderView為AJAX操作進行輸出),因此這個解決方案破壞了MVC的職責。我不這么認為,但是我希望能做到這一點,因為做到這一點即意味著絕對的透明。絕對透明則意味著Controller將一個應用程序是否AJAX的決定權完全交給了客戶端,這點非常理想,因為AJAX完全是一個表現層的概念。ASP.NET AJAX中的UpdatePanel在這方面的表現可圈可點(雖然還遠不夠完美),因此我最后決定也為ASP.NET MVC開發一款類似UpdatePanel的組件。值得慶幸的是,ASP.NET MVC默認使用WebForm頁面作為視圖模板,在這個強大的模型之下,構建出這樣一個AJAX解決方案(的原形)似乎并不十分困難。

我將這個控件命名為MvcAjaxPanel。MvcAjaxPanel與UpdatePanel最大的區別在于后者接收的是PostBack,而前者接收的只是普通的HTTP請求。Post“Back”意味著Post過后回到了原來的Page,而ASP.NET MVC的請求往往會被引導至不同的頁面。因此如何跨頁面進行內容更新是MvcAjaxPanel首要解決的問題。最終我選擇了為每個MvcAjaxPanel指定一個UpdateAreaID的做法。

  1. <mvc:MvcAjaxPanel runat="server" ID="mvcAjaxPanel" UpdateAreaID="Header">  
  2.     ...  
  3. </mvc:MvcAjaxPanel> 


當頁面向服務器端發出一個AJAX請求時將會附帶頁面中的UpdateAreaID信息,而服務器端的Action并不會意識到這一點,因此依舊按照尋常邏輯指定一個視圖模版并輸出HTML。不過,如果視圖模板中的 MvcAjaxPanel發現這個請求實際上是一個符合約定的AJAX請求(請注意,只有View組件意識到這是個請求的性質),則會使用新的方法來替換標準的輸出。這時候模板就會根據客戶端傳遞過來的UpdateAreaID,尋找頁面上具有同樣屬性值的MvcAjaxPanel,有選擇性地輸出內容。在客戶端就會有對應的JavaScript代碼接收服務器端的數據,并且更新頁面中的相應區域。

很明顯,MvcAjaxPanel的工作原理與UpdatePanel有頗多相似之處,也做到了一定程度上的透明。而且與Nikhil的解決方案相比,一個非常重要的優勢就是可以一次更新頁面中的多個區域——其實這也就是UpdatePanel的特性之一。而且這種對Controller透明的做法又有一個天然的特點,那就是能夠輕松地在不支持AJAX的瀏覽器中使用傳統的方式切換頁面。

【編輯推薦】

  1. ASP.NET的AsyncState參數
  2. ASP.NET MVC執行異步Action
  3. 概述ASP.NET MVC框架
  4. ASP.NET MVC中使用UpdataModel方法
  5. ASP.NET MVC的Action方法
責任編輯:佚名 來源: IT專家網
相關推薦

2009-07-20 10:53:59

ASP.NET MVC

2009-07-20 15:44:32

ASP.NET MVC

2009-07-20 12:59:53

ASP.NET MVCASP.NET框架的功

2009-07-23 18:14:17

MVC生命周期

2009-07-24 13:20:44

MVC框架ASP.NET

2009-07-31 12:43:59

ASP.NET MVC

2009-07-20 16:56:16

SQL語句ASP.NET

2009-07-22 10:34:37

ActionInvokASP.NET MVC

2009-10-29 09:15:32

ASP.NET MVCDropDownLis

2009-04-08 09:58:07

ASP.NET MVCTempData框架

2009-07-28 10:23:19

button按鈕ASP.NET

2009-07-23 14:17:41

2009-07-27 17:00:29

ASP.NET主機

2009-07-29 09:14:36

ASP.NET網站

2009-07-29 10:02:49

ASP.NET上傳

2009-09-10 14:02:08

LINQ ASP.NE

2009-07-21 10:40:36

ASP.NET Pro

2009-07-29 17:26:39

ASP.NET頁面

2009-07-20 16:12:21

ASP.NET Fra

2009-07-22 09:11:02

Action方法ASP.NET MVC
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区乱码图片 | 91久久精品一区 | 婷婷在线免费 | 久久久久亚洲精品 | 国产成人一区二区三区电影 | 日韩美av| 日韩国产高清在线观看 | 国产一级片一区二区 | 91视频国产区 | 亚洲97 | 91在线免费视频 | 日韩精品一区二区三区视频播放 | 国产精品欧美日韩 | 一区二区三区四区国产 | 人人精品 | 91久久精品国产 | 免费黄色片视频 | 欧美极品在线 | 欧美在线视频网 | 亚洲欧美日韩国产综合 | 久久国际精品 | 成人在线视频免费观看 | 久久国产精品一区二区三区 | 日韩一区二区三区在线 | 伊人久久免费视频 | 中文字幕国产一区 | caoporn国产精品免费公开 | 久久精品这里 | 韩国毛片一区二区三区 | 亚洲成人av | 国产羞羞视频在线观看 | 在线看91 | 国产精品.xx视频.xxtv | 成人免费大片黄在线播放 | 日韩在线中文字幕 | 青青草国产在线观看 | 亚洲黄色高清视频 | 综合久久一区 | 欧美日韩亚洲视频 | 久久涩涩 | 久久亚洲精品国产精品紫薇 |