日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.Net Core 2.0中的Razor Page不是WebForm

發(fā)布時(shí)間:2023/12/4 asp.net 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.Net Core 2.0中的Razor Page不是WebForm 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

隨著.net core2.0的發(fā)布,我們可以創(chuàng)建2.0的web應(yīng)用了。2.0中新東西的出現(xiàn),會(huì)讓我們忘記老的東西,他就是Razor Page。下面的這篇博客將會(huì)介紹ASP.Net Core 2.0中的Razor Page。

在ASP.Net Core 2.0新特點(diǎn)之一就是支持Razor Page。今天的Razor Page是ASP.Net Core MVC中的一個(gè)子集。ASP.Net Core MVC 支持Razor Page意味著Razor Page應(yīng)用從技術(shù)上來說就是MVC應(yīng)用,同時(shí)Razor Page和MVC 視圖有相同的特性。

什么是Razor Page?

對(duì)于MVC的開發(fā)者來說,可能想問,為什么我們需要另外一種方式來創(chuàng)建我們的ASP.Net Core 站點(diǎn)?是MVC不能滿足我的需求?通過在社區(qū)收集的信息,我發(fā)現(xiàn)大概有一下原因:
(1)Razor Page對(duì)于開發(fā)者,甚至是來自其他腳本語言比如:ASP、PHP的開發(fā)者來說很容易創(chuàng)建我們的web應(yīng)用,同時(shí)Razor Page要比MVC更加的輕量級(jí)。
(2)Razor Page非常適合不大的場(chǎng)景,在這種場(chǎng)景下可以構(gòu)建控制器和模型來作為單獨(dú)的類別。

我完全是不同意這些觀點(diǎn)的,因?yàn)镸VC在ASP.Net Core 下是輕巧靈活的,我也用MVC來覆蓋較小的場(chǎng)景, 它的方式更快, 因?yàn)槲沂褂玫臇|西, 我已經(jīng)非常了解了。MVC 引入的代碼量并不是很大,因此對(duì)于小型的應(yīng)用來說差異不會(huì)很大。

?

創(chuàng)建一個(gè)Razor Page應(yīng)用

在Visual Studio 2017 Preview 2我們可以使用Razor Page的模板來創(chuàng)建項(xiàng)目

點(diǎn)擊確定即可。

項(xiàng)目結(jié)構(gòu)

項(xiàng)目結(jié)構(gòu)很像MVC但是這里沒有Controller和Views文件夾,只有一個(gè)Pages文件夾,里面包含了所有的Razor Views.在上下文中Razor Views被叫做“Pages”。這些Pages很像MVC中的Views,但是他們也包含了在MVC中控制器的類。稍后我會(huì)介紹Razor Page。Program和Startup類和MVC應(yīng)用中是一樣的,不僅僅是名字還有代碼。如前所述,Razor Page在MVC的支持下,是其中的一部分。這里可以將表現(xiàn)層和業(yè)務(wù)邏輯分開。我們可以為頁面創(chuàng)建代碼隱藏文件,并將它命名為PageName.cshtml.cs。代碼隱藏文件所包含的類被稱為“Page Model”。請(qǐng)注意,創(chuàng)建的解決方案中的 About.cshtml、Contact.cshtml、Error.cshtml、Index.cshtml 頁面中都包含代碼隱藏文件。正如創(chuàng)建的Razor Page,它有它自己的模式。稱它為View-ViewModel,它像MVC和MVVM的混合。當(dāng)我們考慮編碼的時(shí)候,Razor Pages會(huì)讓我們更接近老的ASP。現(xiàn)在它更object-oriented,更接近MVC。這就是關(guān)于頁面的代碼,同時(shí)也是默認(rèn)的Razor Pages應(yīng)用程序的一部分。

Page 總是用 @page 指令標(biāo)記,并且@page必須要放到開始的位置,有了它,會(huì)告訴視圖引擎,這是Razor Page不是一個(gè)標(biāo)準(zhǔn)的MVC View。我們可以指定比常規(guī)MVC模型更像視圖模型的模型。實(shí)際上,這里的模型更像是控制器和模型的混合。那些使用XAML的人應(yīng)該發(fā)現(xiàn)他熟悉的概念,下面是關(guān)于頁面的代碼隱藏或頁面模型。

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

  • OnGet / OnGetAsync

  • OnPost / OnPostAsync

  • OnDelete / OnDeleteAsync

這些方法將由ASP.NET Core根據(jù)HTTP請(qǐng)求的類型自動(dòng)匹配,就我個(gè)人而言, 我發(fā)現(xiàn)這些 OnGet () 和 OnPost () 方法比 MVC 控制器的操作更隱秘, 它們清楚地傳達(dá)了它們的目的。

我們?cè)倏纯碦azor Page 沒有code-behind的情況:

現(xiàn)在, 讓我們看看只有Page, 而無需代碼隱藏的文件。它的工作方式與代碼隱藏類的版本完全一樣。

方法和屬性在 @functions 節(jié)中定義。我只是把頁面模型的內(nèi)容移到頁面本身, 它就能正常工作了。實(shí)際上, 最好將這些代碼隱藏文件和視圖從代碼中清除, 因?yàn)橐晥D中的代碼不容易使用自動(dòng)測(cè)試進(jìn)行測(cè)試。此外, 如果視圖隨著時(shí)間的推移變得更加復(fù)雜, 那么, 如果只在隱藏代碼文件中增加代碼這種方式是很好的。

最后:

我不知道有多少人在今天使用Razor Page, 但它仍然是輕量級(jí)的選擇, 我也認(rèn)為這可能是一個(gè)簡(jiǎn)單項(xiàng)目的選擇, 在這里不需要很好的粒度和對(duì)代碼的控制, 但我仍然覺得在有些情況下與 MVC 可以一起用。無論如何, 擁有更多的選擇和 entry-level 的技術(shù)從來都不是壞事。我希望有明確的使用場(chǎng)景下去使用Razor Page, 否則這項(xiàng)技術(shù)將永遠(yuǎn)在 MVC 的影響下只是一個(gè)小兄弟。

?再次說明:Razor Page 不是ASP.Net WebForm,Razor Page 它是基于 MVC 的大部分, 它不從 ASP.NET WebForm中使用任何組件。Razor Page更 MVVM 的模式, 并遵循單一的責(zé)任原則,優(yōu)于 MVC, 其中一個(gè)控制器為多個(gè)視圖做許多事情。因此, 每個(gè)頁面都有其單頁模型。它的速度更快, 更苗條--控制器被消除 (cshtml 和 Index.cshtml.cs)。更詳細(xì)的可以參考:?https://www.youtube.com/watch?v=Lu1wBtf2CKE&t=1780s

相關(guān)文章:?

  • .NET Core 2.0 正式發(fā)布信息匯總

  • .NET Standard 2.0 特性介紹和使用指南

  • .NET Core 2.0 的dll實(shí)時(shí)更新、https、依賴包變更問題及解決

  • .NET Core 2.0 特性介紹和使用指南

  • Entity Framework Core 2.0 新特性

  • 體驗(yàn) PHP under .NET Core

  • .NET Core 2.0使用NLog

  • 升級(jí)項(xiàng)目到.NET Core 2.0,在Linux上安裝Docker,并成功部署

  • 解決Visual Studio For Mac Restore失敗的問題

  • ASP.NET Core 2.0 特性介紹和使用指南

  • .Net Core下通過Proxy 模式 使用 WCF

  • .NET Core 2.0 開源Office組件 NPOI

  • ASP.NET Core - Razor頁面之Handlers處理方法

  • ASP.NET Core Razor頁面 vs MVC

  • Razor Page–Asp.Net Core 2.0新功能 ?Razor Page介紹

原文地址:http://www.cnblogs.com/runningsmallguo/articles/7376565.html


.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注

總結(jié)

以上是生活随笔為你收集整理的ASP.Net Core 2.0中的Razor Page不是WebForm的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。