Razor 頁面是Asp.Net Core2.0新增的一個功能。Razor 頁面是 ASP.NET Core MVC 的一個新特性,它可以使基於頁面的編碼方式更簡單高效。
環境:vs2017 .net core2.2
Razor 頁面項目搭建
目錄說明
wwwroot:放置網站的靜態文件的目錄。例如/wwwroot/a.js,瀏覽器訪問地址/a.js
依賴項:引用
Pages:存放razor頁面。例如/Pages/index.cshtml,瀏覽器訪問地址/index
- _Layout.cshtml 是整個網站的母板文件,
- _ViewStart.cshtml 負責設置所有Razor頁面都會用到的Layout屬性,
- _ViewImports.cshtml 負責設置所有頁面都會用到的指令,比如引入什么類庫等
- _ValidationScriptsPartial.cshtml 負責引用驗證腳本,比如jquery的validation組件
appsettings.json:應用配置文件。可存放數據庫鏈接字符串等信息
bower.json:靜態資源包管理的配置文件
Program.cs:包含程序的入口點
Startup.cs:包含配置應用行為的代碼,初始化配置
Razor頁面介紹
.net core2中的新功能,是結合了web form和Mvc兩個asp.net經典框架,另外還加入了mvvm理論(Model-View-ViewModel)而衍生出的新東西。razor頁面包含view+controll,比mvc更輕量級,它屬於mvc的一部分。設計有點像webform中的aspx。每個 Razor 頁面都是一對文件。
- 一個 .cshtml 文件,其中包含使用 Razor 語法的 C# 代碼的 HTML 標記。
- 一個 .cshtml.cs 文件,其中包含處理頁面事件的 C# 代碼。
注意:頭部必須以@page開始。@page使文件轉換為一個 MVC 操作 ,這意味着它將直接處理請求,而無需通過控制器處理。 @page
必須是頁面上的第一個 Razor 指令。
頁面的 URL 路徑的關聯由頁面在文件系統中的位置決定。 下表顯示了 Razor 頁面路徑及匹配的 URL:
文件名和路徑 | 匹配的 URL |
---|---|
/Pages/Index.cshtml | / 或 /Index |
/Pages/Contact.cshtml | /Contact |
/Pages/Store/Contact.cshtml | /Store/Contact |
/Pages/Store/Index.cshtml | /Store 或 /Store/Index |
Razor Pages 按所列順序搜索以下目錄中的 Razor 資源(例如布局和分區):Pages文件夾——>/Pages/Shared/——>/Views/Shared/
你喜歡哪個妹子呢?
Razor 頁面(CRUD)
數據庫設計
創建模型
新建文件夾models,使用DB Frist模式生成模型
nuget執行腳本:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
//生成model,用這個
Scaffold-DbContext "Server=.;Database=qiye2008;User ID=sa; Password=sa2008" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
//更新models,以后更新用
Scaffold-DbContext "Server=.;Database=qiye2008;User ID=sa; Password=sa2008" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force
//如果出錯,請Ctrl+Shift+B,解決完錯誤在重新執行
----------------------------------------------------
我的電腦提示下列錯誤,我是win7
PowerShell version 2.0 is not supported. Please upgrade PowerShell to 3.0 or greater and restart Visual Studio.
意思就是powershell版本太低需要升級,下載地址https://www.microsoft.com/zh-CN/download/details.aspx?id=40855,下載安裝重啟電腦。
如果安裝不了請把后綴.msu修改為.cab,然后解壓,然后單擊開始---運行,輸入dism /online /add-package /packagepath:"d:\123\Windows6.1-KB2819745-x64.cab",路徑根據自己情況修改
如果還是安裝不了請使用web platform installer安裝
------------------------------------------------------
執行完,在models中生成了model和上下文DbContext,數據庫鏈接字符串也在上下文中,
但是,.net core一般把數據庫字符串保存在appsettings.json中,https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/connection-strings
上下文還需要在Startup.cs中初始化。這兩個可以讓vs自動給咱完成。
添加基架:pages新建文件夾student,然后右鍵添加razor頁面
創建的文件
Pages/student:“創建”、“刪除”、“詳細信息”、“編輯”和“索引”。
Data/EFContext.cs //新創建的上下文,models中的上下文就可以刪除了
文件已更新
Startup.cs //vs已自動將上下文注冊到依賴關系注入容器
appsettings.json //需要自己修改下數據庫鏈接字符串
//基架工具自動創建 DB 上下文並將其注冊到依賴關系注入容器。
ok,ctrl+f5可以預覽了