ASP.NET Core Razor Pages


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可以預覽了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM