在ASP.NET中,“razor”和“cshtml”文件之间有什么区别?我们应该在“razor-components”应用程序中使用“.razor”文件而不是“.cshtml”吗?
suzh9iv81#
在标准.cshtml文件中使用,并按如下方式实现:
<BlazorSample.Components.MyComponent />
这些新扩展用于Razor组件。https://learn.microsoft.com/en-us/aspnet/core/blazor/components/?view=aspnetcore-3.1
cx6n0qe32#
看起来确实有点混乱,对于Blazor Server来说,使用VS 2022中的.net core 6 blazor模板,如果我用两个新项修改NavMenu,一个指向一个.razor页面,一个指向一个.cshtml页面,指向一个razor页面的那一个会显示在现有布局内部,另一个不会。2它会替换所有的东西。3尽管.razor页面必须有teh @page指令才能让用户导航到它。因此,至少对于Blazor服务器来说,剃刀页面有多种用途
.cshtml
zed5wv103#
.cshtml文件是Razorpages或MVC视图,它们不包含任何C#编写的客户端代码。如果要这样做,您必须使用JavaScript。但是,.Razor文件(也称为Razor组件)可以在其中编写C#并在客户端浏览器上运行。
2ledvvac4#
razor帮助你将服务器端代码如C#代码嵌入到网页中。cshtml只是一个文件扩展名。razor视图引擎用于将razor页面(.cshtml)转换为html。
eeq64g8w5#
这 取决 于 您 所 指 的 ASP.NET ...例如 , 就 Blazor 而言 :自 . NET 核心 3.0 预览 版 4 SDK ( 3.0.100 - preview4 - 011223 ) 起 , 注意 到 :
因此 , 如果 您 使用 . NET Core 3.0 Preview 4 及 更 高 版本 构建 Blazor Web 应用 程序 , 则 应 使用 . razor 而 不是 . cshtml 。来源 : https://devblogs.microsoft.com/aspnet/blazor-now-in-official-preview/
mu0hgdu06#
由于Blazor可以在客户端执行C#,现在有两个地方-客户端和服务器-可以执行Razor代码。因此客户端扩展名为“.razor”,服务器端扩展名为“.cshtml”我创建了一个新的WebAssemblyHosted应用程序,发现:
fcwjkofz7#
Razor是一种标记语法,允许您使用C#将基于服务器的代码嵌入到网页中,cshtml是Razor文件的扩展名Cshtml = cs(C#)+ HTML组件通常使用C#和HTML标记的组合在Razor组件文件(.razor)中实现(.cshtml文件用于Blazor应用程序)。.cshtml和.razor与我们在blazor应用程序中使用的.cshtml文件和在razor组件中使用的.razor文件相同
bttbmeg08#
我可能是错的,但是添加新的Razor页面时创建的.cshtml文件是一个新的html页面,而添加新的Razor组件时创建的.razor文件是一个适合Razor页面的组件。
.razor
8条答案
按热度按时间suzh9iv81#
在标准.cshtml文件中使用,并按如下方式实现:
这些新扩展用于Razor组件。
https://learn.microsoft.com/en-us/aspnet/core/blazor/components/?view=aspnetcore-3.1
cx6n0qe32#
看起来确实有点混乱,对于Blazor Server来说,使用VS 2022中的.net core 6 blazor模板,如果我用两个新项修改NavMenu,一个指向一个.razor页面,一个指向一个.cshtml页面,指向一个razor页面的那一个会显示在现有布局内部,另一个不会。2它会替换所有的东西。3尽管.razor页面必须有teh @page指令才能让用户导航到它。
因此,至少对于Blazor服务器来说,剃刀页面有多种用途
.cshtml
zed5wv103#
.cshtml文件是Razorpages或MVC视图,它们不包含任何C#编写的客户端代码。如果要这样做,您必须使用JavaScript。但是,.Razor文件(也称为Razor组件)可以在其中编写C#并在客户端浏览器上运行。
2ledvvac4#
razor帮助你将服务器端代码如C#代码嵌入到网页中。cshtml只是一个文件扩展名。razor视图引擎用于将razor页面(.cshtml)转换为html。
eeq64g8w5#
这 取决 于 您 所 指 的 ASP.NET ...
例如 , 就 Blazor 而言 :
自 . NET 核心 3.0 预览 版 4 SDK ( 3.0.100 - preview4 - 011223 ) 起 , 注意 到 :
因此 , 如果 您 使用 . NET Core 3.0 Preview 4 及 更 高 版本 构建 Blazor Web 应用 程序 , 则 应 使用 . razor 而 不是 . cshtml 。
来源 : https://devblogs.microsoft.com/aspnet/blazor-now-in-official-preview/
mu0hgdu06#
由于Blazor可以在客户端执行C#,现在有两个地方-客户端和服务器-可以执行Razor代码。因此客户端扩展名为“.razor”,服务器端扩展名为“.cshtml”
我创建了一个新的WebAssemblyHosted应用程序,发现:
客户端项目有*.razor文件,没有.cshtml文件 * 此项目将被编译并将.dll发送到客户端,然后由集成在浏览器中.Net执行 *
Server项目具有*.cshtml文件,但没有.razor文件 * 此代码在服务器上编译和执行,就像在旧asp中一样 *
fcwjkofz7#
Razor是一种标记语法,允许您使用C#将基于服务器的代码嵌入到网页中,cshtml是Razor文件的扩展名Cshtml = cs(C#)+ HTML
组件通常使用C#和HTML标记的组合在Razor组件文件(.razor)中实现(.cshtml文件用于Blazor应用程序)。
.cshtml和.razor与我们在blazor应用程序中使用的.cshtml文件和在razor组件中使用的.razor文件相同
bttbmeg08#
我可能是错的,但是添加新的Razor页面时创建的
.cshtml
文件是一个新的html页面,而添加新的Razor组件时创建的.razor
文件是一个适合Razor页面的组件。