1. 程式人生 > >ASP.NET Core Razor Pages 初探

ASP.NET Core Razor Pages 初探

最近新建 Asp.net Core MVC 專案的時候不小心選錯了個模板,發現了一種新的專案模板。它使用cshtml檢視模板,但是沒有Controller資料夾。後來才發現這是ASP.NET Core框架新推出的Razor Pages技術。 ## 什麼是Razor Pages “Razor Pages 使編碼更加簡單更加富有生產力”這是微軟說的==!。Razor Pages 簡化了傳統的mvc模式,僅僅使用檢視跟模型來完成網頁的渲染跟業務邏輯的處理。模型裡包含了資料跟方法,通過繫結技術跟檢視建立聯絡,這就有點像服務端的繫結技術。下面使用一個標準的CRUD示例來演示Razor Pages的開發,並且簡單的探索一下它是如何工作的。 ## 新建Razor Pages專案 在visual studio中新建Razor Pages專案。 ![](https://s1.ax1x.com/2020/04/26/J2bbD0.md.png) 專案結構 ![](https://s1.ax1x.com/2020/04/26/J2LJw6.png) 新建專案的目錄結構比MVC專案簡單。它沒有Controllers目錄,Pages有點像MVC專案的Views目錄,裡面存放了cshtml模板。隨便點開一個cshtml檔案,發現它都包含了一個cs檔案。這是跟MVC專案最大的不同,這個結構讓人回憶起那古老的WebForm技術,o(╥﹏╥)o 。 ![](https://s1.ax1x.com/2020/04/26/J2XnxJ.md.png) ## 新建Razor Page 我們模擬開發一個學生管理系統。一共包含4個頁面:列表頁面、新增頁面、修改頁面、刪除頁面。首先我們新建一個列表頁面。 在Pages目錄下面新建Student目錄。在Student目錄下新建4個Razor page名叫:List、Add、Update、Delete。 ![](https://s1.ax1x.com/2020/04/26/J2jsmR.md.png) 建好後目錄結構是這樣: ![](https://s1.ax1x.com/2020/04/26/J2xYGT.png) ## 模擬資料訪問倉儲 由於這是個演示專案,所以我們使用靜態變數來簡單模擬下資料持久。 在專案下新建一個Data目錄,在目錄下新建Student實體類: ``` public class Student { public int Id { get; set; } public string Name { get; set; } public string Class { get; set; } public int Age { get; set; } public string Sex { get; set; } } ``` 在Data目錄下新建IStudentRepository跟StudentRepository類: ``` public interface IStudentRepository {