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