欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP.NET?Core?Razor頁面用法介紹

 更新時(shí)間:2022年02月22日 08:30:32   作者:Sweet-Tang  
這篇文章介紹了ASP.NET?Core?Razor頁面的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

簡介

隨著ASP.NET Core 2 即將來臨,最熱門的新事物是Razor頁面。在之前的一篇文章中,我們簡要介紹了ASP.NET Core Razor 頁面。

Razor頁面是ASP.NET Core的一個(gè)新功能,可以使基于頁面的編程方式更容易,更高效。

大眾的初步印象是對(duì)于那些只專注于頁面的小型應(yīng)用來說,Razor頁面更容易、更快地取代MVC。然而,事實(shí)證明,它可能比這更強(qiáng)大。使用ASP.NET Core 2在創(chuàng)建新的應(yīng)用程序時(shí),Razor頁面(空,Razor頁面,Web API,MVC)是默認(rèn)選項(xiàng),似乎ASP.NET團(tuán)隊(duì)對(duì)Razor頁面有更多的計(jì)劃,并希望它成為創(chuàng)建Web應(yīng)用程序時(shí)首選。

所有的Razor頁面類型和特征都在Microsoft.AspNetCore.Mvc.RazorPages程序集中,MVC默認(rèn)包Microsoft.AspNetCore.Mvc已經(jīng)包含了Razor頁面組件,這意味著您可以在MVC應(yīng)用程序中直接使用Razor頁面。

Razor頁面的優(yōu)點(diǎn)之一是設(shè)置和創(chuàng)建非常容易。您創(chuàng)建一個(gè)新的空項(xiàng)目,添加Pages文件夾,添加頁面,只需在 .cshtml 文件中編寫代碼和標(biāo)記。非常適合新手,是學(xué)習(xí)ASP.NET Core簡單快速的方法!

Why?

如果您想使用MVC構(gòu)建幾個(gè)簡單的頁面,你需要將控制器 Action、HTML視圖、視圖模型、路由分別在單獨(dú)的位置編寫,這看起來似乎很過分了。

在Razor頁面中,只有一個(gè)Razor文件(.cshtml),后臺(tái)的代碼也位于該文件內(nèi),該文件也表示應(yīng)用程序的URL結(jié)構(gòu)(稍后將會(huì)介紹)。因此,您可以將所有內(nèi)容都放在一個(gè)文件中,就這么簡單。

但是,您可以使用 .cshtml.cs 擴(kuò)展名文件將后臺(tái)代碼分開。通常在該文件中包括視圖模型和Handlers (如MVC中的Acion方法),也可以在該文件中的處理邏輯。當(dāng)然,您也可以將您的視圖模型移動(dòng)到單獨(dú)的文件中。

創(chuàng)建Razor頁面應(yīng)用程序

在VS 2017中安裝.NET Core 2 SDK的情況下,如果我們按照這樣的方式:文件 - > 新建項(xiàng)目 - > Web - > ASP.NET Core Web應(yīng)用程序,我們將得到下面的窗口:

手動(dòng)將身份驗(yàn)證類型改為“個(gè)人用戶帳戶”。

我們也可以通過CLI實(shí)現(xiàn)同樣的效果

dotnet new razor --auth Individual

在dotnet CLI創(chuàng)建一個(gè)新項(xiàng)目之后,我們將在的項(xiàng)目中得到以下結(jié)構(gòu):

首先注意到是沒有Views文件夾, 如果沒有選擇"授權(quán)"選項(xiàng), 那么也不會(huì)有"Controllers"文件夾。在我們的例子中,有AccountController控制器,在 Pages 文件夾中包含Account 文件夾。該文件夾的中,我們存放Razor頁面,在MVC中這些代碼通常放在 ~Views/Account 文件夾中:

頁面的默認(rèn)位置是"Pages"文件夾,但可以更改

大部分頁面都附帶.cs文件,表示頁面的模型:

在.cs文件中,我們可以定義我們的邏輯、Handlers(Action)、模型和所有需要的邏輯。我們也可以把它當(dāng)作是.cshtml頁面的粘合劑,僅處理GET / POST / PUT / DELETE,也可以將邏輯移到單獨(dú)的類或?qū)?項(xiàng)目中。

需要注意的一點(diǎn)是,我們需要在 .cshtml 文件的頂部定義 @page 指令。這告訴Razor這個(gè) .cshtml 文件是Razor Page文件:

ASP.NET Core Razor頁面 - 核心功能

由于Razor頁面是MVC框架的一部分,我們可以在Razor頁面中使用MVC所附帶的任何功能。

模型綁定

在MVC中模型綁定也適用于Razor頁面,就像MVC控制器中的Action方法一樣,在Razor頁面代碼有Handlers 。

在ChangePassword頁面.cshtml文件編寫如下表單:

ChangePassword.cshtml.cs文件中實(shí)現(xiàn)ChangePasswordModel類:

這里是InputModel類:

InputModel提供了我們?cè)贛VC中熟悉的ViewModel功能。

Handlers

我們使用Handlers作為處理HTTP請(qǐng)求(GET,POST,PUT,DELETE ..)的方法。例如,我們可以有以下方法:

  • OnGet / OnGetAsync
  • OnPost / OnPostAsync
  • OnDelete / OnDeleteAsync

這些方法將由ASP.NET Core根據(jù)HTTP請(qǐng)求的類型自動(dòng)匹配。

讓我們回到之前ChangePassword的示例。這是ChangePassword.cshtml.cs文件的一部分代碼:

OnGetAsyncOnPostAsync是Razor頁面 handlers約定好了的名稱。一旦您打開ChangePassword頁面,OnGetAsync handler 將執(zhí)行,當(dāng)您從ChangePassword.cshtml頁面提交表單,OnPostAsync handler 將被觸發(fā)。

此外,我們可以將所有的頁面代碼放在 .cshtml 文件中。例如,我們可以將這兩個(gè)函數(shù)從ChangePassword.cshtml.cs文件移動(dòng)到ChangePassword.cshtml中:

關(guān)鍵字 @functions 指令,它使Razor文件范圍內(nèi)的代碼成為功能級(jí)方法。

Tag Helpers and HTML Helpers

我們還可以在Razor頁面內(nèi)使用所有現(xiàn)有的Tag Helpers 和HTML Helpers;此外,可以創(chuàng)建自定義的幫助類,并在Razor頁面中使用它們。

路由

我在GitHub中的小項(xiàng)目設(shè)置演示了如何使用Razor頁面進(jìn)行CRUD - 倉庫鏈接 。您需要.NET Core 2.0 preview 3(build 6764 才能正常運(yùn)行)或更高版本以及Visual Studio 2017.3或更高版本。

以下是所有文件的項(xiàng)目結(jié)構(gòu):

除了兩個(gè)標(biāo)準(zhǔn)文件 Program.cs 和 Startup.cs ,一切都在Pages文件夾中;請(qǐng)注意,某些頁面具有匹配的后臺(tái)代碼文件。

如前所述,項(xiàng)目中頁面的位置(文件系統(tǒng)中的路徑)將確定匹配的URL。

這里是一些重要頁面文件和路由匹配的列表:

頁面文件路徑匹配的URL
~Pages/Index.cshtml/ , /Index
~Pages/Categories/Index.cshtml/Categories , Categories/Index
~Pages/Categories/Edit.cshtml/Categories/Edit/1
~Pages/Categories/Create.cshtml/Categories/Create

總結(jié)

  • Razor頁面是以網(wǎng)頁為重點(diǎn)的Web編程方式
  • 您可以(如果您想)在一個(gè)文件中實(shí)現(xiàn)所有的代碼和HTML
  • Razor頁面文件的路徑?jīng)Q定了您的頁面的URL/路由
  • 這不是老的ASP.NET網(wǎng)頁的新實(shí)現(xiàn)
  • 在MVC中可以使用的的功能,我們也可以Razor頁面中使用:
    • 模型綁定
    • Razor支持
    • Tag Helpers
    • HTML Helpers
    • Handlers (Action方法)
    • 等等...
  • 我們有(OnGet,OnGetAsync,OnPostAsync等)Handlers
  • 文件系統(tǒng)(項(xiàng)目結(jié)構(gòu))中的頁面位置決定URL路徑
  • 需要一個(gè)根文件夾
  • 默認(rèn)存儲(chǔ)在 Pages 根文件夾中(可配置)

到此這篇關(guān)于ASP.NET Core Razor頁面用法介紹的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • WPF控件模板與其觸發(fā)器

    WPF控件模板與其觸發(fā)器

    這篇文章介紹了WPF控件模板與其觸發(fā)器,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • .NET4.0版本中基于任務(wù)的異步模式(TAP)

    .NET4.0版本中基于任務(wù)的異步模式(TAP)

    這篇文章介紹了.NET4.0版本中基于任務(wù)的異步模式(TAP),文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • ASP.NET Core基礎(chǔ)之異常中間件

    ASP.NET Core基礎(chǔ)之異常中間件

    這篇文章介紹了ASP.NET Core基礎(chǔ)之異常中間件,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • ASP.NET2.0+SQL Server2005構(gòu)建多層應(yīng)用

    ASP.NET2.0+SQL Server2005構(gòu)建多層應(yīng)用

    ASP.NET2.0+SQL Server2005構(gòu)建多層應(yīng)用...
    2006-12-12
  • asp.net FindControl方法誤區(qū)和解析

    asp.net FindControl方法誤區(qū)和解析

    在ASP.NET中Control都有一個(gè)FindControl方法,其作用是根據(jù)ID(注意既不是UniqueID也不是ClientID)在Control所在的命名容器中尋找相應(yīng)控件,但實(shí)際使用中存在很多誤區(qū)和陷阱,下面談?wù)剛€(gè)人對(duì)此的理解
    2012-01-01
  • asp.net 新聞列表樣式代碼

    asp.net 新聞列表樣式代碼

    asp.net下新聞列表樣式顯示代碼,使用Repeater控件。
    2011-02-02
  • C#控件命名規(guī)范

    C#控件命名規(guī)范

    C#控件命名規(guī)范,遵守規(guī)范有利于代碼的可維護(hù)性。
    2010-09-09
  • 三種方法解決ASP.NET?Core?6中的依賴項(xiàng)

    三種方法解決ASP.NET?Core?6中的依賴項(xiàng)

    這篇文章主要介紹了解決ASP.NET?Core?6依賴項(xiàng)的三種方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-11-11
  • ConfiguraionSource節(jié)點(diǎn)及多個(gè)配置文件的應(yīng)用

    ConfiguraionSource節(jié)點(diǎn)及多個(gè)配置文件的應(yīng)用

    ConfiguraionSource節(jié)點(diǎn)及多個(gè)配置文件的應(yīng)用...
    2007-01-01
  • ASP.NET?Core中的Razor頁面介紹

    ASP.NET?Core中的Razor頁面介紹

    這篇文章介紹了ASP.NET?Core中的Razor頁面,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02

最新評(píng)論