asp.net “剃刀”和“cshtml”文件有什么区别?

6jjcrrmo  于 2022-11-19  发布在  .NET
关注(0)|答案(8)|浏览(237)

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

suzh9iv8

suzh9iv81#

在标准.cshtml文件中使用,并按如下方式实现:

<BlazorSample.Components.MyComponent />

这些新扩展用于Razor组件。
https://learn.microsoft.com/en-us/aspnet/core/blazor/components/?view=aspnetcore-3.1

cx6n0qe3

cx6n0qe32#

看起来确实有点混乱,对于Blazor Server来说,使用VS 2022中的.net core 6 blazor模板,如果我用两个新项修改NavMenu,一个指向一个.razor页面,一个指向一个.cshtml页面,指向一个razor页面的那一个会显示在现有布局内部,另一个不会。2它会替换所有的东西。3尽管.razor页面必须有teh @page指令才能让用户导航到它。
因此,至少对于Blazor服务器来说,剃刀页面有多种用途

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

.cshtml

  • 可能使用控件的页,或者在页为布局时由控件使用的页
zed5wv10

zed5wv103#

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

2ledvvac

2ledvvac4#

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

eeq64g8w

eeq64g8w5#

这 取决 于 您 所 指 的 ASP.NET ...
例如 , 就 Blazor 而言 :
自 . NET 核心 3.0 预览 版 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/

mu0hgdu0

mu0hgdu06#

由于Blazor可以在客户端执行C#,现在有两个地方-客户端和服务器-可以执行Razor代码。因此客户端扩展名为“.razor”服务器端扩展名为“.cshtml”
我创建了一个新的WebAssemblyHosted应用程序,发现:

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

fcwjkofz7#

Razor是一种标记语法,允许您使用C#将基于服务器的代码嵌入到网页中,cshtml是Razor文件的扩展名Cshtml = cs(C#)+ HTML
组件通常使用C#和HTML标记的组合在Razor组件文件(.razor)中实现(.cshtml文件用于Blazor应用程序)。
.cshtml和.razor与我们在blazor应用程序中使用的.cshtml文件和在razor组件中使用的.razor文件相同

bttbmeg0

bttbmeg08#

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

相关问题