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

问题描述 投票:0回答:9

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

asp.net razor
9个回答
44
投票

这取决于您指的是哪个 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 应用程序,则应该使用 .razor 而不是 .cshtml。

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


19
投票

由于 Blazor 可以在客户端执行 C#,因此现在有 2 个地方可以执行 Razor 代码:客户端和服务器。所以客户端有扩展名“.razor”服务器端 -“.cshtml”

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

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

13
投票

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

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

.cshtml 和 .razor 是同一个东西 我们在 blazor 应用程序中使用 .cshtml 文件,在 razor 组件中使用 .razor


8
投票

我可能是错的,但是添加新的 Razor 页面时创建的

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

===参考===

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

来自:Microsoft Learn 门户


2
投票

看起来确实有点令人困惑。对于 Blazor Server,在 VS 2022 中使用 .net core 6 blazor 模板,如果我用两个新项目修改 NavMenu,一个指向 .razor 页面,一个指向 .cshtml 页面。指向 Razor 页面的一个将显示在现有布局内,另一个则不会。它将取代一切。尽管 .razor 页面必须具有 @page 指令才能允许用户导航到它。

因此,至少对于 Blazor 服务器而言,razor 页面具有多种用途

  • 可以在其他页面使用的控件
  • 可以导航到的页面(必须有@page指令),并将出现在现有布局中。基本上这些可能只是控件

.cshtml

  • 可能使用控件的页面,或者如果页面是布局则由控件使用

1
投票

在标准 .cshtml 文件中使用,并像这样实现:

<BlazorSample.Components.MyComponent />

这些新扩展用于 Razor 组件。

https://learn.microsoft.com/en-us/aspnet/core/blazor/components/?view=aspnetcore-3.1


1
投票

.cshtml 文件是 razorpages 或 MVC 视图,它们不包含任何 C# 编写的客户端代码。如果您想这样做,则必须使用 JavaScript。 但是,.razor 文件(也称为 Razor 组件)可以用 C# 编写并在客户端浏览器上运行。


0
投票

razor 可以帮助您将服务器端代码(例如 C# 代码)嵌入到网页中。 cshtml 只是一个文件扩展名。 razor 视图引擎用于将 razor 页面(.cshtml)转换为 html。


0
投票

在MVC(模型-视图-控制器)架构中,“Razor”和“CSHTML”是ASP.NET中使用的相关概念。

Razor 是一种用于在 ASP.NET 中创建动态网页的标记语法。它允许您将服务器端代码嵌入 HTML 标记中,从而更轻松地生成动态内容。 Razor 语法简洁易读,提供了 HTML 和代码之间的清晰分离。

CSHTML (C# HTML) 是 ASP.NET 中 Razor 视图文件使用的文件扩展名。 CSHTML 文件包含 HTML 标记和 Razor 语法的混合。它们负责渲染 MVC 应用程序的用户界面(视图)。

总而言之,Razor 是用于在 HTML 中嵌入服务器端代码的语法,而 CSHTML 文件是使用 Razor 语法在 ASP.NET MVC 中生成动态网页的实际视图文件。

© www.soinside.com 2019 - 2024. All rights reserved.