隨著技術的發展,ASP.NET Core MVC也推出了好長時間,經過不斷的版本更新迭代,已經越來越完善,本系列文章主要講解ASP.NET Core MVC開發B/S系統過程中所涉及到的相關內容,適用於初學者,在校畢業生,或其他想從事ASP.NET Core MVC 系統開發的人員,僅供學習分享使用 ...
隨著技術的發展,ASP.NET Core MVC也推出了好長時間,經過不斷的版本更新迭代,已經越來越完善,本系列文章主要講解ASP.NET Core MVC開發B/S系統過程中所涉及到的相關內容,適用於初學者,在校畢業生,或其他想從事ASP.NET Core MVC 系統開發的人員,僅供學習分享使用。
什麼是MVC?
MVC是一種架構模式,也是一種設計規範,主要是為瞭解決業務邏輯,數據,頁面展示相互耦合而設計出來的一種前後端分離的系統架構。對於小系統而言,當有需求需要擴展時,是非常輕而易舉的;但隨著系統的越來越龐大,代碼之間的耦合也越來越高,可謂牽一發而動全身,修複1個缺陷,可能會潛在的引入3個缺陷。在這種情況下,高內聚,低耦合,減少模塊之間的耦合度就顯得尤為重要,MVC也從眾多的方案中脫穎而出,並且越來越被大家認可。
什麼是ASP.NET Core MVC?
在.Net Core出現之前,所有的開發框架都是基於.Net Framework的,但是.Net Framework只適用於Windows操作系統,且沒有開源,全部是有Microsoft公司推進。正所謂‘一人計短,二人計長’,開源才是推動技術進步的最快方法,所以為了不被其他的開發語言市場逐漸蠶食,.Net Core也出現在了大眾面前。在.Net Core出現之初,就吸引了大批的忠實追隨者,ASP.NET Core MVC也在MVC在.Net Core的實現。模型-視圖-控制器 (MVC) 體繫結構模式將應用程式分成 3 個主要組件組:模型、視圖和控制器。
前提條件
在學習ASP.NET Core MVC開發Web程式之前,需要具備以下基礎條件:
C#基礎知識,ASP.NET Core MVC是基於.Net 進行開發的,所以掌握基本的C#相關內容是很有必要的。
Html,JavaScript,CSS基礎知識,是進行B/S模式系統開發必備內容。
開發工具【Visual Studio 2022】安裝使用,可到官網進行下載安裝包。
創建ASP.NET Core MVC程式
在Visual Studio 2022中,創建新項目,選擇【ASP.NET Core Web應用(模型-視圖-控制器)】模板,如下所示:
在【配置新項目】頁面,輸入項目名稱,選擇保存位置,然後點擊【下一步】
在【其他信息】頁面,選擇目前比較穩定的.NET 6.0(長期支持),然後點擊【創建】按鈕,如下所示:
由於是通過模板進行創建的項目,所以預設會創建基礎的文件夾和示例,如下所示:
註意:基於.Net Framework和基於.Net Core創建的ASP.NET MVC項目,預設生成的文件和目錄結構存在一些細微的差異:
- ASP.NET Core MVC的配置,是基於JSON格式進行配置的。如appsettings.json ,Properties\launchSettings.json 等。
- Program是應用程式的入口,沒有Main函數。
運行程式
在Visual Studio 2022中運行程式,或F5快捷鍵,啟動程式,會在瀏覽器中打開預設頁面,並啟動一個控制台視窗,用於日誌輸出,如下所示:
修改埠
通過模板創建的ASP.NET Core MVC程式,預設https埠為7116,http埠為5043。如果在瀏覽器中輸入http://localhost:5043,會自動跳轉到 https://localhost:7116。可以根據具體需要,修改預設埠,
在launchSettings.json配置文件中,可修改預設配置埠,如下所示:
預設路由
在通過模板創建的ASP.NET Core MVC項目中,預設支持MVC路由,如果是創建的空項目,則需要手動添加,主要由以下三行代碼:
- 註入支持控制器視圖服務。
- 使用路由
- 預設路由配置,可理解為預設值配置
具體如下所示:
ASP.NET Core MVC的約定
在ASP.NET Core MVC中,流行【約定大於配置】的說法,即在同一個項目中,大家都按照同一種方式去開發,會使項目更易於維護,可讀性更高,同時簡化大量的配置,以提高工作效率。
ASP.NET Core MVC中的約定,體現如下:
- 控制器的約定:
- 所有的Controller必須放到Controllers文件夾中,並以【名稱+Controller】的方式命名,如:HomeController。
- 每個Controller都對應View中的一個文件夾,文件夾的名稱跟Controller名相同,如:Home。
- Controller中的方法名都對應一個View視圖(非必須,但是建議這麼做)而且View的名字跟Action的名字相同。
- 控制器必須是非靜態類,並且要實現IController介面,預設繼承自Controller。
- Controller類型可以放到其他項目中
- 視圖的約定:
- 所有的視圖必須放到Views目錄下。
- 不同控制器的視圖用文件夾進行分割,每個控制器都對應一個視圖目錄。
- 一般視圖名字跟控制器的Action相對應(非必須)。
- 多個控制器公共的視圖放到Shared:例如公用的錯誤頁、列表模板頁、表單模板頁等等;
添加控制器
在Controllers文件夾上點擊右鍵 添加(D)--控制器(T)...打開控制器視窗,如下所示:
在新視窗選擇【MVC控制器 - 空】,然後點擊【添加】按鈕
在添加新項,輸入控制器名稱HelloController,然後點擊【添加】,如下所示:
註意:所有的控制器,均已Controller結尾。
添加Action
控制器中的每個 public
方法均可作為 HTTP 終結點調用,稱之為Action,通常表示一個請求響應。Action預設返回一個IActionResult,表示一個頁面,同時也可以返回其他數據類型,如string,int等。如下所示:
1 using Microsoft.AspNetCore.Mvc; 2 3 namespace DemoCoreMVC.Controllers 4 { 5 public class HelloController : Controller 6 { 7 public IActionResult Index() 8 { 9 return View(); 10 } 11 12 public string Welcome() 13 { 14 return "歡迎公子小六..."; 15 } 16 } 17 }
創建視圖
在ASP.NET Core MVC項目中,可以通過在Action名稱上右鍵,點擊【添加視圖(D)】,打開視圖添加視窗,如下所示:
可以選擇基於模型的視圖,或者空視圖,暫時先選擇【Razor視圖 - 空】,然後點擊【添加】按鈕,如下所示:
輸入視圖名稱【預設為cshtml尾碼,支持Razor語法】,點擊【添加】。
創建成功後,會在Views目錄下,創建Hello文件夾及創建Index.cshtml文件。修改內容如下所示:
運行程式,併在瀏覽器中輸入https://localhost:7116/Hello,如下所示:
註意:以上頁面顯示,除了紅框內的信息為Views\Hello\Index.chtml內容,其他的均為Layout佈局模板中內容。若不需要載入佈局模板內容,或者指定新的Layout佈局模板,可將頁面中的Layout設置為空,或其他路徑,如下所示:
1 @* 2 For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 3 *@ 4 @{ 5 Layout = null; 6 } 7 <h1>歡迎公子小六</h1>
以上就是ASP.NET Core MVC從入門到精通之初窺門徑的全部內容,後續會繼續講解ASP.NET Core MVC其他內容。
作者:小六公子
出處:http://www.cnblogs.com/hsiang/
本文版權歸作者和博客園共有,寫文不易,支持原創,歡迎轉載【點贊】,轉載請保留此段聲明,且在文章頁面明顯位置給出原文連接,謝謝。
關註個人公眾號,定時同步更新技術及職場文章