ASP.NET Core Razor Pages
Razor 頁面是Asp.Net Core2.0新增的一個功能。Razor 頁面是 ASP.NET Core MVC 的一個新特性,它可以使基于頁面的編碼方式更簡單高效。
環(huán)境:vs2017 .net core2.2
Razor 頁面項目搭建
目錄說明
wwwroot:放置網(wǎng)站的靜態(tài)文件的目錄。例如/wwwroot/a.js,瀏覽器訪問地址/a.js
依賴項:引用
Pages:存放razor頁面。例如/Pages/index.cshtml,瀏覽器訪問地址/index
- _Layout.cshtml 是整個網(wǎng)站的母板文件,
- _ViewStart.cshtml 負責設(shè)置所有Razor頁面都會用到的Layout屬性,
- _ViewImports.cshtml 負責設(shè)置所有頁面都會用到的指令,比如引入什么類庫等
- _ValidationScriptsPartial.cshtml 負責引用驗證腳本,比如jquery的validation組件
appsettings.json:應用配置文件。可存放數(shù)據(jù)庫鏈接字符串等信息
bower.json:靜態(tài)資源包管理的配置文件
Program.cs:包含程序的入口點
Startup.cs:包含配置應用行為的代碼,初始化配置
?
Razor頁面介紹
.net core2中的新功能,是結(jié)合了web form和Mvc兩個asp.net經(jīng)典框架,另外還加入了mvvm理論(Model-View-ViewModel)而衍生出的新東西。razor頁面包含view+controll,比mvc更輕量級,它屬于mvc的一部分。設(shè)計有點像webform中的aspx。每個 Razor 頁面都是一對文件。
- 一個 .cshtml 文件,其中包含使用 Razor 語法的 C# 代碼的 HTML 標記。
- 一個 .cshtml.cs 文件,其中包含處理頁面事件的 C# 代碼。
注意:頭部必須以@page開始。@page使文件轉(zhuǎn)換為一個 MVC 操作 ,這意味著它將直接處理請求,而無需通過控制器處理。?@page?必須是頁面上的第一個 Razor 指令。
頁面的 URL 路徑的關(guān)聯(lián)由頁面在文件系統(tǒng)中的位置決定。?下表顯示了 Razor 頁面路徑及匹配的 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 資源(例如布局和分區(qū)):Pages文件夾——>/Pages/Shared/——>/Views/Shared/
你喜歡哪個妹子呢?
?
Razor 頁面(CRUD)
數(shù)據(jù)庫設(shè)計
創(chuàng)建模型
新建文件夾models,使用DB Frist模式生成模型
nuget執(zhí)行腳本:
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,解決完錯誤在重新執(zhí)行
----------------------------------------------------
我的電腦提示下列錯誤,我是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",路徑根據(jù)自己情況修改
如果還是安裝不了請使用web platform installer安裝
------------------------------------------------------
執(zhí)行完,在models中生成了model和上下文DbContext,數(shù)據(jù)庫鏈接字符串也在上下文中,
但是,.net core一般把數(shù)據(jù)庫字符串保存在appsettings.json中,https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/connection-strings
上下文還需要在Startup.cs中初始化。這兩個可以讓vs自動給咱完成。
添加基架:pages新建文件夾student,然后右鍵添加razor頁面
創(chuàng)建的文件
Pages/student:“創(chuàng)建”、“刪除”、“詳細信息”、“編輯”和“索引”。
Data/EFContext.cs //新創(chuàng)建的上下文,models中的上下文就可以刪除了
文件已更新
Startup.cs? ? ? ? ? ?//vs已自動將上下文注冊到依賴關(guān)系注入容器
appsettings.json? //需要自己修改下數(shù)據(jù)庫鏈接字符串
//基架工具自動創(chuàng)建 DB 上下文并將其注冊到依賴關(guān)系注入容器。
?ok,ctrl+f5可以預覽了
轉(zhuǎn)載于:https://www.cnblogs.com/webapi/p/10511529.html
總結(jié)
以上是生活随笔為你收集整理的ASP.NET Core Razor Pages的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cannot send session
- 下一篇: 数据库如何进行索引优化