發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導圖
隨筆
相冊
原創(chuàng)同步助手
其他工具
圖片轉文字
文件清理
AI助手
留言交流
MVC在底層和傳統(tǒng)的asp.net是一致的,在底層之上,相關流程如下:
1)Global.asax里,MvcApplication對象的Application_Start()事件中,調用 RouteConfig.RegisterRoutes(RouteTable.Routes); 來注冊路由規(guī)則。
2)RouteConfig.RegisterRoutes()方法里,給出的默認規(guī)則為 {controller}/{action}/{id} .
a. 在有特別需要的時候,到這里來修改規(guī)則。
b. 未指明Controller默認為HomeContoller,未指定Action默認為Index, 也就是說,直接訪問站點時,會默認導航到HomeController下的Index Action.
c. Action后跟的內(nèi)容會被映射為名為id的參數(shù)。 比如: User/Delete/1 會匹配到 UserController的 Delete(int id) 方法。
d. Action分為[HttpGet]和[HttpPost]兩種,與HTTP的GET和POST方式對應。 即直接請求的URL只會匹配[HttpGet]方法,而未注明[HttpPost]的方法即默認為[HttpGet]. Post的Action一般會有一個Model參數(shù),MVC會自動將表單里的數(shù)據(jù)按約定的規(guī)則填充到Model實體對象里。 這個約定的規(guī)則,就是表單的Name與屬性名稱有個對應規(guī)則。
3)MVC負責按上述規(guī)則將執(zhí)行流程導入合適的Action中,即Controller的某個方法中。
4)Action中,可以直接返回字符串,輸出到瀏覽器, 也可以返回到ActionResult對象, 該對象指向一個View頁面,并且附帶了一些屬性作為傳遞數(shù)據(jù)的容器。
ActionResult通常通過調用Controller對象的View(…)方法得到,也可以通過Redirect()方法或RedirectToAction()方法得到, 不過后面兩種方法主要用于跳轉到其它Controller,因為后面的方法不能傳遞Model對象。 Action向View傳遞數(shù)據(jù),可以通過Model、ViewBag或ViewData三種容器,其中Model是強類型的,所以是最優(yōu)先的方式。
5)View中,會先執(zhí)行本身,再執(zhí)行模板頁和子頁, 但是執(zhí)行順序和頁面內(nèi)容的輸出順序并不一致。模板中后輸出的內(nèi)容可以在頁面中先輸出的內(nèi)容的前面.
在View中,需要提交數(shù)據(jù),或跳轉頁面里,均會通過Route導向某個Controller的Action。 View中向Action中傳遞數(shù)據(jù),其最終原理是通過http的GET和POST等方式(含AJAX的), POST方式會通過上面提到的約定規(guī)則,將表單中的數(shù)據(jù)填充到Model參數(shù)對象中。 在Action中,可以訪問通過參數(shù)傳遞進來的Model對象,也可以訪問原始的Request對象中的QueryString參數(shù)或Form集合, 當然Model對象是優(yōu)先的方式。
來自: 昵稱10504424 > 《工作》
0條評論
發(fā)表
請遵守用戶 評論公約
MVC構架(4)
MVC構架(4)基于Stuts的MVC模型Struts是Apache組織的一個項目,像其他的Apache組織的項目一樣,也是開放原碼項目。它是一個比較好的MVC框架提供了對開發(fā)MVC系統(tǒng)的底層支持,采用的主要技術是ServletJSP...
表現(xiàn)層框架Struts/Tapestry/JSF架構比較
Struts/Tapestry/JSF是目前J2EE表現(xiàn)層新老組合的框架技術。從誕生時間上看,Struts應該比較早,使用得非常廣泛, Tapestry 3.0逐漸引起廣泛的重視,正當Tapestry即將大顯身手時期,SUN推出JSF標準技術...
Struts用戶手冊翻譯(1)
Struts用戶手冊翻譯(1)1.3 Struts的流程控制。Struts配置(和另外一些東西)定義了應用中使用的ActionMapping[org.apache.struts.action.ActionMappings]??刂破鱯ervlet得到或者建立ActionForm bean...
WebAPI下的如何實現(xiàn)參數(shù)綁定
實際上,WebAPI使用model binding讀取查詢字符串(query string)內(nèi)容進行參數(shù)綁定,使用Formatters讀取主體內(nèi)容。id=123 void Action(int id, Customer c) // 參數(shù)id從query string中讀取,參數(shù)c是一個...
[ASP.NET MVC 小牛之路]09 - Controller 和 Action (1)
本篇介紹 Controller 的實現(xiàn)、Controller 對狀態(tài)數(shù)據(jù)的獲取、ActionResult 和 Action 的數(shù)據(jù)傳遞,后續(xù)將介紹 Controller 工廠、Action ...
后臺參數(shù)驗證的幾種方式
關于Framework、Library和MVC的一點感悟
關于Framework、Library和MVC的一點感悟。總之,構成程序的將不再是一行行獨立的代碼,而是不同模塊相互堆疊和包含,這就是所謂“模塊化編程”,而對于主程序邏輯來說,已經(jīng)封裝好的模塊A、B、C、D、E...
淺談Flux與MVC
淺談Flux與MVC?,F(xiàn)在假設有這樣的場景,用戶想查看自己的profile頁面,可能會有這樣的流程:在頁面上點擊profile按鈕,接下來就是一個HT...
asp.net MVC 的處理流程
asp.net MVC 的處理流程。將RoutData與HttpContext合并成為RequestContext傳遞到IRoutHandler接口,IRoutHandler接口的實現(xiàn)類MvcRouteHa...
微信掃碼,在手機上查看選中內(nèi)容