Razor组件与Razor页面

正如我们在visual studio的菜单中看到的,有两个选项,Razor Component和Razor Page,我不知道这两个选项之间的确切区别是什么。如果我在 razor 组件的顶部添加 @page 指令,它有自己的地址。它们在实践中有何区别?

回答

介绍

当您启动 dotnet Web 应用程序时,您可以在多种类型的应用程序之间进行选择,其中包括 mvc、webapp 和 Blazor:

dani@localhost ~ $ dotnet new
Templates                                         Short Name               Language          Tags                  
--------------------------------------------      -------------------      ------------      ----------------------
Razor Page                                        page                     [C#]              Web/ASP.NET           
...
Blazor Server App                                 blazorserver             [C#]              Web/Blazor            
Blazor WebAssembly App                            blazorwasm               [C#]              Web/Blazor/WebAssembly
...
ASP.NET Core Web App (Model-View-Controller)      mvc                      [C#], F#          Web/MVC               
ASP.NET Core Web App                              webapp                   [C#]              Web/MVC/Razor Pages   
...

如果您创建一个,webapp您可以看到剃刀页面:

dani@localhost pp2 $ tree
.
??? appsettings.Development.json
??? appsettings.json
??? obj
?   ??? ...
??? Pages
?   ??? Error.cshtml                <-- Razor Page
?   ??? Error.cshtml.cs             <-- Razor Page
?   ??? Index.cshtml
?   ??? Index.cshtml.cs
?   ??? Privacy.cshtml
?   ??? Privacy.cshtml.cs
?   ??? Shared
?   ?   ??? _Layout.cshtml
?   ?   ??? _ValidationScriptsPartial.cshtml
?   ??? _ViewImports.cshtml
?   ??? _ViewStart.cshtml
??? ...

引用ASP.NET Core 中 Razor 页面的介绍:

Razor Pages 可以使编码以页面为中心的场景比使用控制器和视图更容易、更高效。

正如你在树结构上看到的,一个 razor 页面是一个 cshtml file (template) plus acs` 文件(行为)。该页面呈现为 html 并发送到导航器。

存在另一种应用程序,blazor。引用ASP.NET Core Blazor 简介:

Blazor 是一个使用 .NET构建交互式客户端 Web UI的框架

重要术语“交互式”,不仅是渲染 html,是一种使页面具有交互性的语言(不仅仅是在服务器上渲染 html 并将其发送给客户端)

Razor 组件与 Razor 页面

  • Razor 页面通常用于在服务器上生成 html 页面并发送到 ASP.NET Core Web 应用程序上的客户端
  • Razor 组件(“Blazor 组件”)是用于交互使用的 Blazor 应用程序(可以在 Blazor 服务器应用程序和 Blazor WebAssembly 应用程序中运行)的组件。

笔记

  • 检查下面 Henk 的回答,术语“Razor 组件”没有逻辑,在 Henk 看来(和我的)应该是“Blazor 组件”,因为它只在 Blazor 应用程序上运行。
  • Razor 组件供应商将此组件命名为“Blazor 组件”:https ://www.syncfusion.com/blazor-components 、 https ://www.telerik.com/blazor-ui 、...
  • 请注意,当您@page向 Blazor 组件添加指令时,它变得可路由(类似于“blazor 页面”),但它仍然是一个组件。
  • 您可以将 Razor 组件(“Blazor 组件”)和 Razor 页面添加到Web 应用程序:Chris Sainty在现有 MVC 应用程序中使用 Blazor 组件。

以上是Razor组件与Razor页面的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>