【问题标题】:What is the difference between "razor" and "cshtml" files?“razor”和“cshtml”文件有什么区别?
【发布时间】:2019-08-30 14:48:13
【问题描述】:

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

【问题讨论】:

    标签: asp.net razor


    【解决方案1】:

    这取决于你指的是哪个 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/

    【讨论】:

    • 非常多,这个问题我找了好久,终于找到了
    • 上一版本的blazor服务器端模板,包含两种扩展!有一个 _Host.cshtml 以及一些具有 .razor 扩展名的文件。这是为什么?由于您的回答,那些.cshtml 文件不应该被重命名为具有.razor 扩展名吗? (提前感谢您的帮助)
    【解决方案2】:

    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】:

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

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        <BlazorSample.Components.MyComponent />
        

        这些新扩展用于 Razor 组件。

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 2019-10-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-01-23
              • 2020-05-08
              • 2020-08-19
              • 2011-05-22
              • 2010-10-26
              相关资源
              最近更新 更多