2.1 控制器的角色 MVC模式中的控制器(Controller)主要負責響應用戶的輸入,冰球在響應時修改模型(Model)。通過這種方式,MVC模式中的控制器主要關註的是應用程式流、輸入數據的處理,以及對相關視圖(View)輸出數據的提供。 URL首先告知陸游機制去實例化哪個控制器,調用哪個操作方 ...
2.1 控制器的角色
MVC模式中的控制器(Controller)主要負責響應用戶的輸入,冰球在響應時修改模型(Model)。通過這種方式,MVC模式中的控制器主要關註的是應用程式流、輸入數據的處理,以及對相關視圖(View)輸出數據的提供。
URL首先告知陸游機制去實例化哪個控制器,調用哪個操作方法,併為該方法提供需要的參數。然後控制器的方法決定使用哪個視圖,並對該視圖進行渲染。
URL並不用存儲在Web伺服器磁碟上的文件有直接對應關係,而是與控制器類的方法有關。
2.2 示例應用程式:MVC Music Store
我們將要構建的應用程式是一個簡單的音樂商店。該應用程式有三個主要部分:購物,結帳和管理。
訪客可以按類型瀏覽相冊:
他們可以查看單個相冊並將其添加到購物車中:
他們可以查看購物車,刪除他們不再需要的任何商品:
繼續結帳將提示他們登錄或註冊用戶帳戶。
創建帳戶後,他們可以通過填寫運費和付款信息來完成訂單。為了簡單起見,我們正在進行一項驚人的促銷活動:如果他們輸入促銷代碼“免費”,一切都是免費的!
訂購後,他們會看到一個簡單的確認屏幕:
除了面向客戶的頁面,我們還將構建一個管理員部分,其中顯示管理員可以創建,編輯和刪除相冊的相冊列表:
2.3 控制器基礎
2.3.1 簡單示例:Home Controller
- HomeController:負責網站根目錄下的“home page”、“about page”和“contact page”。
- AccountController:響應與賬戶相關的請求,比如登錄和賬戶註冊。
註意:這是一個相當簡單的類,它繼承了Controller基類。HomeController類的Index方法負責決定當瀏覽網站首頁時觸發的事件。
2.3.2 創建第一個控制器
首先創建一個控制器來處理有關瀏覽音樂目錄的URL。這個控制器支持以下三個功能:
- 索引頁面列出商品店裡麵包含的音樂類型。
- 單擊一個流派,跳轉到一個列出改流派下所有音樂專輯的頁面。
- 單擊一個專輯,跳轉到一個列出有關該專輯所有信息的頁面。
1.創建新控制器
添加一個新的控制器StoreController
2.編寫操作方法
新創建的StoreController控制器已經有了一個Index方法,下麵將利用這個Index方法實現在頁面上列出音樂商店裡所有歌曲流派的功能。另外,還需要添加兩個額外的方法來實現上述其他兩項功能,這兩個方法分別是Browse和Details。
3.經驗總結
- 不需要做任何額外配置,瀏覽/Store/Details就可以執行StoreController類中的Details方法,這就是操作中的路由。
- 儘管是使用VS工具來創建這個控制器類,但它的確是一個非常簡單的類。判別一個類是否是控制器類的唯一方式,就是查看該類是否繼承自System.Web.Mvc.Controller。
- 已經利用了一個控制器在瀏覽中顯示了文本----沒有用到模型和視圖。控制器是真正的核心。每一個請求都必須通過控制器處理,而有的請求是不需要模型和視圖的。
2.3.3 控制器操作的參數
前面的例子寫出的是常量字元串。下一步就是讓它們通過響應URL傳進來的參數動態地執行操作。
控制器通過URL被調用,然後執行自定義的代碼並返回一個視圖。
2.4 小結
控制器是MVC應用程式的“指揮員”,它精確精密地編排用戶、模型對象和視圖的交互。同時控制器還負責響應用戶輸入,操縱正確的模型對象,然後選擇合適的視圖顯示給用戶以作為對用戶最初輸入的響應。