上面的虛線表示:被動角色。實線表示:主動角色。 1.控制器和視圖:控制器和視圖是雙向的關係,但控制器的關係更主動。 當控制器是主動的角色的時候,控制器決定要顯示哪一個View;當視圖為主動角色時,視圖可以決定,要將數據返回給控制器中的哪一個Action方法,並且,當數圖需要數據的時候,可以決定數據應 ...
上面的虛線表示:被動角色。實線表示:主動角色。
1.控制器和視圖:控制器和視圖是雙向的關係,但控制器的關係更主動。
當控制器是主動的角色的時候,控制器決定要顯示哪一個View;當視圖為主動角色時,視圖可以決定,要將數據返回給控制器中的哪一個Action方法,並且,當數圖需要數據的時候,可以決定數據應該從哪一個控制器的方法獲得。
2.視圖和模型:視圖是主動角色,而模型則是以數據提供者的方式存在。所以視圖到模型是實現,模型到視圖是虛線。
視圖上的數據,基本上是從控制器中的方法中傳過來的。然而,傳過來的數據類別,基本上是模型中定義的,所以,可以這樣說:視圖和模型之間,是彼此參考的關係,也就是說,視圖會參考模型中的數據字典定義。
如果,視圖發現,從控制器傳過來的數據,不足以完整顯示,這個時候,視圖就會變成主動,即主動對模型,進行數據查詢獲得數據。也就是在上圖中,看到的,視圖到模型是實線。。
3.控制器和模型:控制器永遠是主動的關係,控制器負責調用模型中所定義的各種數據字典,而模型只是單純的提供數據服務,或者驗證服務給控制器使用。
好了,綜上所述:也就是,用戶發過來的請求,首先會通過路由,路由機制,判斷這個請求是,請求哪個控制器中的哪個方法,然後控制器,調用模型中的數據字典定義,獲取數據之後,決定要顯示哪一個視圖。大概就是這麼回事。
好了,現在看看,如果新建第一個MVC程式吧。
這裡,我用的是VS2013,打開VS2013,選擇文件--》新建--》項目
然後選擇空白的模板
先好項目之後,初始化的模板是:
接著,我們自己新建一個控制器Home,修改一下預設生成的代碼
代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace FirstMVC.Controllers { public class HomeController : Controller { // GET: Home public string Index() { return "歡迎您,這裡是ASP.NET MVC"; } } }
接著,我們運行一下代碼,就得到如圖的結果,這就是我們第一個簡單的不能再簡單的小程式:
總結;主要理解MVC的概念。