“ razor”和“ cshtml”文件有什么区别

BAL*_*GAN 5 asp.net razor

ASP.NET中的“剃须刀”和“ cshtml”文件有什么区别?我们是否应该在“ razor-components”应用程序中使用“ .razor”文件而不是cshtml?

par*_*lko 20

由于 Blazor 可以在客户端执行 C#,因此现在有 2 个位置(客户端和服务器)可以执行 Razor 代码。因此客户端具有扩展名“.razor”服务器端具有扩展名“.cshtml”

我创建了一个新的 WebAssemblyHosted 应用程序并发现:

  • 解决方案中创建了 3 个项目:客户端、服务器和共享
  • 客户端项目有.razor文件,没有 .cshtml 文件。 该项目将被编译并发送.dll到客户端,然后由集成在浏览器中的.Net执行
  • 服务器项目有.cshtml文件,没有 .razor 文件。 这段代码在服务器上编译并执行,就像在旧的 asp 中一样
  • 共享项目包含客户端和服务器的通用类型/类。 现在(终于)您不需要像以前一样在服务器上的 C# 和客户端的 JS 中声明两次模型类。当然,您不需要将一个映射到另一个。


Pio*_*trG 9

这取决于您指的是哪个ASP.NET ...

例如,就Blazor而言:

从.NET Core 3.0 Preview 4 SDK(3.0.100-preview4-011223)开始,请注意:

  • 将所有_ViewImports.cshtml文件重命名为_Imports.razor。
  • 将所有剩余的.cshtml文件重命名为.razor。

因此,如果要使用.NET Core 3.0 Preview 4和更高版本构建Blazor Web App,则应使用.razor而不是.cshtml。

资料来源:https : //devblogs.microsoft.com/aspnet/blazor-now-in-official-preview/

  • [Microsoft 当前立场](https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-7.0) 恰当地看待了这一点。`.cshtml` 是一个页面,`.razor` 是一个组件。请注意,Blazor Server 的 MS 模板仍然使用“.cshtml”文件。因此,我建议我们对博客中的建议持保留态度,用“.razor”替换所有“.cshtml”! (3认同)
  • 非常喜欢,这个问题我找了很多答案,现在找到了 (2认同)
  • 在上一个版本中,blazor 服务器端的模板包含这两种类型的扩展!有一个“_Host.cshtml”以及一些具有“.razor”扩展名的文件。这是为什么?根据您的回答,这些“.cshtml”文件是否应该重命名为“.razor”扩展名?(在此先感谢您的帮助) (2认同)
  • 那么为什么在 .net 6 中,我们的起始模板中仍然有 .cshtml 呢? (2认同)

Ala*_*DHI 7

Razor 是一种标记语法,可让您使用 C# 将基于服务器的代码嵌入到网页中,而 cshtml 是 razor 文件 Cshtml = cs (C#) + HTML 的扩展

组件通常在 Razor 组件文件 (.razor) 中使用 C# 和 HTML 标记(.cshtml 文件在 Blazor 应用程序中使用)的组合实现。

.cshtml 和 .razor 与我们在 blazor 应用程序中使用 .cshtml 文件和在 razor 组件中使用 .razor 相同

  • 使用 .NET Core 3.0 Preview 4 的 Blazor 应用程序现在使用 .razor 扩展名。 (3认同)
  • 说“.cshtml 和 .razor 是同一件事”是一种误导,以下是一些仅适用于 MVC 视图和 Razor 页面 (.cshtml) [tag-helpers](https://learn.microsoft.com/ en-us/aspnet/core/mvc/views/razor?view=aspnetcore-7.0#tag-helpers) 也 [@model 指令](https://learn.microsoft.com/en-us/aspnet/core/mvc /views/razor?view=aspnetcore-7.0#model) (2认同)

Noc*_*ong 7

我可能是错的,但.cshtml添加新的 Razor 页面时创建的文件是一个新的 html 页面,而.razor添加新的 Razor 组件时创建的文件是适合 Razor 页面的组件。

===参考===

Razor 是一种标记语法,用于将基于 .NET 的代码嵌入到网页中。Razor 语法由 Razor 标记、C# 和 HTML 组成。包含 Razor 的文件通常具有 .cshtml 文件扩展名。Razor 还可以在 Razor 组件文件 (.razor) 中找到。

来自:Microsoft Learn 门户