零基礎學習MVC(一)

完整的ASP.NET MVC架構是基於Microsoft .NET Framework 3.5,另外還使用LINQ。

MODEL是什麼?

1. MVC MODEL基本上就是一個C#或者VB.NET的類。

2. MODEL將同時被CONTROLLER和VIEW訪問。

3. MODEL被CONTROLLER用來傳輸數據給到VIEW層。

4. VIEW層將使用MODEL來在頁面上顯示數據。

5.MODEL可以是具體的數據模型,實體類

VIEW是什麼?

1. VIEW層主要都是一些cshtml 頁面文件,他們不包括後臺代碼。

2. 在VIEW層中可以對所有的頁面,進行HTML生成和格式化。

3. 可以在VIEW層中使用內聯代碼,進行動態頁面開發。

4. VIEW層中的cshtml 頁面的請求,只能調用CONTROLLER中的方法。

CONTROLLER是什麼?

1. Controller基本上都是一些繼承了system.mvc.controller的C#或者VB.NET的類。

2. Controller是整個MVC架構的核心。

3. 在Controller類中的方法都是用來相應瀏覽器或者VIEW層的請求。

4. Controller將使用MODEL層來向VIEW層的頁面傳輸數據。

5. Controller使用VIEWDATA來傳輸任何數據給到VIEW層。

MVC文件結構和文件的命名規範。

 

MVC程序開發中,使用標準的文件目錄結構和文件命名標準是非常重要的。

在程序的根目錄,必須要有3個目錄,分別是Model, View 和 Controller。

與普通的ASP.NET程序一樣,這三個目錄之外,根目錄下面也必須有一個Global.asax文件和一個Web.Config文件。

 

Root [directory]

· Controller [directory]

o Controller CS files

· Models [directory]

o Model CS files

· Views [directory]

o View cshtml files

· Global.asax

· Web.config

(下面這張圖是老版本的MVC,但是基本思想是一致的)

clip_image006

ASP.NET MVC的運行生命週期

下面是一個MVC架構程序如何執行瀏覽器的請求。

下面圖形所涉及到的每一步執行的說明。

clip_image008

第一步,瀏覽器請求。

用戶在瀏覽器中,輸入一個網址:http://xxx.com/home/index/,這時候就產生一個瀏覽器請求。

第二步,Global.asax的作用,MVC路由。

這個網址將首先被Global.asax文件中的application_start()方法捕獲並解釋。從請求的網址中,將解釋出控制器,方法,和ID。

所以http://xxx.com/home/index/中,我們將得到:

l 控制器:home

l 方法:index()

l ID:空

例子:Global.asax文件中的application_start()方法的 RouteConfig.RegisterRoutes(RouteTable.Routes)方法解析出控制器,方法,和ID。



第三步,Controller層與調用方法。

現在MVC將在Controller目錄下查找home控制器的類。一個控制器類中包含不同的方法。

類中可以包含一個以上的方法,但是MVC只會請求從URL中解釋出來的方法,在這裏就是index()方法。

調用這個方法後,將返回純字符串或者將被VIEW層展示的HTML代碼。

注意命名,MVC查找Controller時查找的是Home+Ctroller名字的類。

例子:

注意方法名稱不能重複,下面這種寫法是錯誤的。只是爲了方便示例,放在了一起。


1.ActionResult Index()方法返回是一個view對象。


默認的網址返回的是Index方法,返回的是view文件夾下的home文件夾裏的index.cshtml頁面。

2. public string Index()方法返回的是一個string語句


3. public string Welcome(string name, int numTimes = 1)返回一個帶參數的string語句。


第四步,調用VIEW層。

調用VIEW將返回view()。調用VIEW層,將會訪問view目錄下指定的cshtml頁面,並且生成將要返回給瀏覽器的HTML代碼。

在這個例子中,控制器是home,方法是index()。所以調用view()將會從/views/home/index.cshtml中返回一個HTML代碼。

到這裏,整個執行流程結束。這就是一個MVC架構如何工作的。


註釋:

1.  Controllers與view的對應關係

Controllers的名字對應view視圖中的文件夾的名字。

Controllers中的方法名對應相應的視圖。

所以一個control可以對應多個視圖。

2.view文件夾中的文件命名規則。

文件名第一個字符是下劃線“_”的文件代表是母版頁,佈局頁。不能用瀏覽器查看。

MVC默認從_ViewStart.cshtml開始。

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

代表佈局頁是_Layout.cshtml

 _Layout.cshtml中的@RenderBody()將是顯示的內容(index頁面,或其他頁)。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章