MVC4學習筆記1
以VS2012產生的default程式為例.
ModelViewControl基本分為3個部分
Model為程式邏輯部分,放在Models的目錄
View為畫面承現部分,放在Views的目錄
Control為控制頁面輸出導向部分,放在Controllers
以上3個部分都須放在各自的資料夾下。
MVC有以下的基本目錄,而如上所述,ASP.NET MVC有約定必須要固定放於某個目錄之下,
在網頁一開始load時進入的畫面設定在App_Start\RouteConfig.cs,如下圖
所以修改Controller及action的設定就可以導向自己定義的頁面了(當然在Controller的ActionResult要有設定action的名稱,不然沒有相對應是不能RUN的)
Controller他是負責控制流程的類別,如上圖,就有一個HomeController.cs的檔案和AccountController.cs這兩個Controller檔案,MVC會強迫所有Controller的檔名就必須叫做xxxController,而且,連此類別的名稱也必須叫做xxxController;所以要建立一個Home的Controller,就必須建立一個叫做HomeController.cs的檔案,然後類別名稱為HomeController,且要放在Controllers的目錄下面。
所有的Controller都是繼承於Controller這個父類別,如HomeController也是繼承於Controller這個父類別,而底下有3個Function,分別為Index(),About(),Contact(),因為Controller是控制器,他會控制流程,並會Show出要顯示的網頁;所以以首頁來說,首頁可能會有Index頁面、About頁面、Contact頁面;所以這裡的Function,Index(),About(),Contact()就是代表著要處理的Index,About,Contact頁面流程,假設今天有一個新的CustController來處理客戶的新增修改刪除等,就需要add()、del()、edit()等Function,所以就會有add,del,edit3個頁面,而在ASP.NET MVC中,這些Function我們也稱之為Action,代表著要執行的動作。
既然Controller的Action(Function)代表著一個頁面,那它勢必會對應到一個View,上圖看到了HomeController裡面有Index()、About()、Contact()。相對應的在Views目錄下必須要有Home的目錄,所以,View檔案的命名,也必須和HomeController的Action(Function)名稱相同;所以Index()這個View的檔名就是Index.cshtml,而About()就是對應About.cshtml,Contact()就是對應Contact.cshtml。
ASP.NET MVC的約定必須在View的目錄下面,在建立一個Controller名稱的目錄,以HomeController的來說,就必須在View底下,在建立一個Home的目錄,並且把Index.cshtml,About.cshtml,Contact.cshtml放到此目錄下去,才算完成。
簡單一點就是在Controller的目錄中有什麼xxxController.cs在Views目錄下就會有xxx的相對應目錄,而目錄下有那些頁面(.cshtml)就看xxxController.cs中有那些Action。
ModelViewControl基本分為3個部分
Model為程式邏輯部分,放在Models的目錄
View為畫面承現部分,放在Views的目錄
Control為控制頁面輸出導向部分,放在Controllers
以上3個部分都須放在各自的資料夾下。
MVC有以下的基本目錄,而如上所述,ASP.NET MVC有約定必須要固定放於某個目錄之下,
- Content - 存放image,css等資源用的目錄。
- Controllers - 存放Controller類別。
- Models - 存放Model類別。
- Scripts - 存放JavaScript。
- Views - 存放檢視畫面,如果是ASPX,副檔名是aspx,如果Razor,則為cshtml。
在網頁一開始load時進入的畫面設定在App_Start\RouteConfig.cs,如下圖
所以修改Controller及action的設定就可以導向自己定義的頁面了(當然在Controller的ActionResult要有設定action的名稱,不然沒有相對應是不能RUN的)
Controller他是負責控制流程的類別,如上圖,就有一個HomeController.cs的檔案和AccountController.cs這兩個Controller檔案,MVC會強迫所有Controller的檔名就必須叫做xxxController,而且,連此類別的名稱也必須叫做xxxController;所以要建立一個Home的Controller,就必須建立一個叫做HomeController.cs的檔案,然後類別名稱為HomeController,且要放在Controllers的目錄下面。
所有的Controller都是繼承於Controller這個父類別,如HomeController也是繼承於Controller這個父類別,而底下有3個Function,分別為Index(),About(),Contact(),因為Controller是控制器,他會控制流程,並會Show出要顯示的網頁;所以以首頁來說,首頁可能會有Index頁面、About頁面、Contact頁面;所以這裡的Function,Index(),About(),Contact()就是代表著要處理的Index,About,Contact頁面流程,假設今天有一個新的CustController來處理客戶的新增修改刪除等,就需要add()、del()、edit()等Function,所以就會有add,del,edit3個頁面,而在ASP.NET MVC中,這些Function我們也稱之為Action,代表著要執行的動作。
既然Controller的Action(Function)代表著一個頁面,那它勢必會對應到一個View,上圖看到了HomeController裡面有Index()、About()、Contact()。相對應的在Views目錄下必須要有Home的目錄,所以,View檔案的命名,也必須和HomeController的Action(Function)名稱相同;所以Index()這個View的檔名就是Index.cshtml,而About()就是對應About.cshtml,Contact()就是對應Contact.cshtml。
ASP.NET MVC的約定必須在View的目錄下面,在建立一個Controller名稱的目錄,以HomeController的來說,就必須在View底下,在建立一個Home的目錄,並且把Index.cshtml,About.cshtml,Contact.cshtml放到此目錄下去,才算完成。
簡單一點就是在Controller的目錄中有什麼xxxController.cs在Views目錄下就會有xxx的相對應目錄,而目錄下有那些頁面(.cshtml)就看xxxController.cs中有那些Action。
留言
張貼留言