MVC4學習筆記1

以VS2012產生的default程式為例.
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。

留言

這個網誌中的熱門文章

java 數字轉字串 字串轉數字

MS sqlServer資料庫移轉至MySQL-->利用MySQL WorkBench

sql server 15023 error [SQL SERVER問題: 使用者、組或角色 '*****' 在當前資料庫中已存在]