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

ASP.NET MVC框架拯救UpdatePanel

開發 后端
本文介紹ASP.NET MVC框架拯救UpdatePanel,UpdatePanel就失去了全部作用,甚至不如一些綁定控件,至少它們還能夠用于展示。

什么是“拯救UpdatePanel for ASP.NET MVC框架”呢?ASP.NET AJAX中的UpdatePanel相信大家都有所了解。可惜的是,ASP.NET MVC框架的誕生“毀滅”了大量基于PostBack的控件,首當其沖地可能就是UpdatePanel了。如果沒有 PostBack,UpdatePanel就失去了全部作用,甚至不如一些綁定控件,至少它們還能夠用于展示。為UpdatePanel長吁短嘆之后,我們不禁又開始懷念UpdatePanel的優勢:“透明”。在UpdatePanel的幫助下,實現AJAX操作對于開發人員幾乎完全透明。我們要做的僅僅是將需要AJAX更新的內容用UpdatePanel包裝起來,一切都是那么優雅。

我們能否在ASP.NET MVC中拯救UpdatePanel呢?也許是可以的吧,但這更像是一個“不可能完成的任務”。我不是傳說中的阿湯哥,因此重新為ASP.NET MVC量身定制一個AJAX解決方案似乎更為可行。雖然我們不會苛求一個新生事物從誕生開始就趨向完美,但即使只是一個原型,它也必須嚴格遵守的一些原則:

不得破壞MVC中的協議(協作,職責等等)

對開發人員盡可能地透明

Nikhil Kothari曾經提出了他在ASP.NET MVC框架下的AJAX解決方案。如果您還不了解他的做法,那么我先在這里進行一點概括。Nikhil擴展了Controller使之支持一種Ajax操作,于是我們在代碼中就可以寫如下代碼:

  1. publicclassTaskListController:AjaxController{  
  2. ...  
  3. publicvoidCompleteTask(inttaskID){  
  4. if(String.IsNullOrEmpty(Request.Form["deleteTask"])==false){  
  5. InvokeAction("DeleteTask");  
  6. return;  
  7. }  
  8.  
  9. Tasktask=_taskDB.GetTask(taskID);  
  10. if(task!=null){  
  11. _taskDB.CompleteTask(task);  
  12. }  
  13.  
  14. if(IsAjaxRequest){  
  15. if(task!=null){  
  16. RenderPartial("TaskView",task);  
  17. }  
  18. }  
  19. else{  
  20. RedirectToAction("List");  
  21. }  
  22. }  
  23. ...  

與AjaxController類似,Nikhil也為ViewPage和ViewControl提供了一些擴展方法,因此目前在View(List.aspx)中我們就能看到如下的代碼:

  1. divid="taskList">  
  2. <%foreach(TasktaskinTasks){%>  
  3. <div>  
  4. <%this.RenderPartial("TaskView",task);%>  
  5. </div>  
  6. <%}%>  
  7. </div> 

在View和Controller中都存在對于RenderPartiel方法的調用,它們的作用就是向客戶端輸出一個“Partial Template”生成的HTML代碼。而在ASP.NET MVC的默認配置中,Partial Template即為User Control。而在TaskView這個Partial Template中可以看到一些輔助方法:

  1. divid="taskItem<%=Task.ID%>"class="taskPanel">  
  2. <%Ajax.Initialize();%>  
  3. <%this.RenderBeginAjaxForm(  
  4. Url.Action("CompleteTask"),  
  5. new{  
  6. Update="taskItem"+Task.ID,  
  7. UpdateType="replace",  
  8. Completed="endUpdateTask"});%>  
  9.  
  10. inputtype="hidden"name="taskID"value="<%=Task.ID%>"/>  
  11. inputtype="submit"class="completeButton"name="completeTask"value="Done!"/>  
  12. inputtype="submit"class="deleteButton"name="deleteTask"value="Delete"/>  
  13. <span><%=Html.Encode(Task.Name)%></span>  
  14.  
  15. <%this.RenderEndForm();%>  
  16. <%Ajax.RenderScripts();%>  
  17. </div> 


這些輔助方法的作用是生成一些觸發AJAX更新的標簽及腳本,當用戶點擊RenderBeginAjaxForm與RenderEndForm方法生成的tag之間的提交按鈕時,網頁將會向服務器端發出一個AJAX請求,而服務器端的Action并最終會通過RenderPartial方法輸出一個Partial Template生成的HTML。服務器端最終輸出的HTML將會被替換或添加到頁面的某個元素內。這就形成了一個AJAX效果。這個解決方案從某些方面看上去很酷,尤其是生成的代碼可以添加到某個元素中,而不單單是如同UpdatePanel的替換,例如Nikhil在他的例子中就使用了這個特性實現了一個添加功能。不過如果使用之前提出的原則來衡量的話,似乎這個解決方案并不十分理想。以上介紹ASP.NET MVC框架拯救UpdatePanel

【編輯推薦】

  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-24 13:20:44

MVC框架ASP.NET

2009-07-29 13:43:52

UpdatePanelASP.NET

2009-07-20 10:53:59

ASP.NET MVC

2009-07-22 10:09:59

ASP.NET MVC

2009-07-22 13:24:24

ASP.NET MVC

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-07-22 10:34:37

ActionInvokASP.NET MVC

2010-06-23 15:44:03

ASP.NET MVC

2009-03-13 10:58:48

ASP.NetMVC框架編程

2014-06-30 09:22:38

ASP.NETBootstrap

2009-07-21 09:43:36

調用UpdatePanASP.NET

2009-07-31 12:43:59

ASP.NET MVC

2009-07-20 12:59:53

ASP.NET MVCASP.NET框架的功

2009-07-24 10:55:00

asp.net mvc

2009-06-01 10:23:31

asp.net mvcasp.net mvc.net mvc框架

2009-07-20 15:51:40

FubuMVC核心框架ASP.NET MVC

2009-07-21 09:18:02

UpdatePanelASP.NET AJA

2009-07-23 14:31:20

ASP.NET MVC

2009-07-23 15:44:39

ASP.NET MVC

2010-03-23 08:42:26

ASP.NET MVC
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频免费在线 | 美女视频黄的 | 日日摸日日碰夜夜爽2015电影 | 国产一级在线视频 | 欧美美女一区二区 | 国产伊人精品 | 久久久久久亚洲精品 | 日韩中文字幕第一页 | 精品三级在线观看 | 成人小视频在线观看 | 成人亚洲性情网站www在线观看 | 91视频一区二区 | 凹凸日日摸日日碰夜夜 | 欧美精品一区久久 | 午夜免费观看网站 | 亚洲国产一区在线 | 日韩高清av | 国产精品视频久久久久久 | 日本一区二区三区视频在线 | 精品三区 | 精品一区二区久久久久久久网精 | 国产在线视频一区 | 国产乱码精品一区二区三区忘忧草 | 国产精品免费一区二区 | 日韩av一二三区 | 成人免费视频 | 欧美美女被c | 免费观看色 | 欧美日韩在线成人 | 国产一级淫片a直接免费看 免费a网站 | 日韩二区| 日韩在线观看一区 | 91精品国产综合久久香蕉麻豆 | a在线观看 | 日韩av在线免费 | 亚洲精品乱码久久久久久9色 | 久久精品高清视频 | 影音先锋成人资源 | 亚洲精品在线国产 | 九色在线观看 | 久久久91精品国产一区二区精品 |