MVC3 - 控制器
摘要:
控制器的角色
控制器簡史
示例應(yīng)用程序:MVC Music Store
控制器基礎(chǔ)
1.控制器的角色
定義:MVC模式中的控制器主要負(fù)責(zé)響應(yīng)用戶的輸入,并且在響應(yīng)時通常會修改模型。通過這種方式,MVC模式中的控制器主要關(guān)注的是應(yīng)用程序流,輸入數(shù)據(jù)的處理,以及對相關(guān)視圖輸出數(shù)據(jù)的提供。
理解MVC模式:MVC提供的是方法調(diào)用的結(jié)果,而不是動態(tài)生成的(又名腳本)頁面。
ASP.NET Web Form是一種基于事件的系統(tǒng),這在Web應(yīng)用程序平臺中是獨(dú)一無二的。它擁有一個強(qiáng)大的基于控件并由事件驅(qū)動的編程模型,從而為開發(fā)人員提供了一個組件化的GUI。
事件驅(qū)動流程:客戶端提交請求—服務(wù)端響應(yīng)請求—ASP.NET重建整個控件層次結(jié)構(gòu)—解釋請求—利用請求內(nèi)容去恢復(fù)應(yīng)用程序中當(dāng)前用戶狀態(tài)(本質(zhì)是因?yàn)閃eb是無狀態(tài)的)
應(yīng)用MVC模式要求Web應(yīng)用程序的每一個用戶輸入只采用請求的方式。如ASP.NET MVC中每個請求都被路由到控制器的一個方法,該控制器全權(quán)負(fù)責(zé)解釋這些請求,如果必要還要操縱模型,通過響應(yīng)選擇一個視圖反饋給客戶。
2.控制器基礎(chǔ)
/Store/Browse?Genre=Disco 方式傳參
HTML編碼的用戶輸入:利用實(shí)用方法HttpUtility.HtmlEncode來預(yù)處理用戶輸入,這能阻止用戶向視圖中用鏈接注入JS代碼或HTML標(biāo)記。比如/Store/Browse?Genre=<script>window.location='http://...'</script>
public string Browse(string genre) {// return "Hello from Store.Browse()";string message =HttpUtility.HtmlEncode("Store.Browse, Genre = " + genre);return message; }/Store/Details/5方式 傳參
當(dāng)操作方法中有名稱為ID的參數(shù),則ASP.NET MVC將會自動將操作方法名稱后面的URL片段作為名稱ID的參數(shù)傳進(jìn)來(ASP.NET MVC的默認(rèn)路由約定)
public string Details(int id) {//return "Hello from Store.Details()";string message = "Store.Details, ID = " + id;return message; }?
控制器感覺是Web瀏覽器直接調(diào)用控制器類中的方法,這極大的簡化忽略了下面的細(xì)節(jié):
- 路由將URL映射到操作的方式
- 將視圖作為模板生成向?yàn)g覽器返回的字符串(通常是HTML格式)
- 操作很少返回原始的字符串;它通常返回合適的ActionResult來處理像HTML狀態(tài)碼和調(diào)用視圖模板系統(tǒng)這樣的事項(xiàng)
?
轉(zhuǎn)載于:https://www.cnblogs.com/KevinG/p/3560613.html
總結(jié)
以上是生活随笔為你收集整理的MVC3 - 控制器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SharePoint 2013 APP
- 下一篇: 基于TCP的一对回射客户/服务器程序及其