asp.net RazorPage 中的 Cs 与 cshtml.cs

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

我不小心将演示模型类文件留在了 Razor Pages 中,扩展名为 .cs 而不是 .cshtml.cs。在一个简单的例子中,它是有效的。除了违反命名约定之外,该解决方案是否还有任何缺陷?而微软为何要达成这样的协议呢?毕竟,.cs 看起来比 .cshtml.cs 更干净、更实用。

razor-pages
2个回答
0
投票

cshtml.cs 文件用于声明与 Razor 页面关联的 PageModel 类。它只是 C# 代码,因此没有技术原因说明您不能像您所做的那样使用 .cs 文件来代替。

唯一实际的缺点是您失去了提供文件嵌套支持的 IDE(例如 Visual Studio)所提供的支持。

命名约定继承自 Web 窗体,其中“代码隐藏”(另一个 C# 类)具有

aspx.cs 扩展名,视图模板具有 .aspx 扩展名。


0
投票

*.cshtml.cs

命名约定的另一个价值是它可以深入了解类文件的内容,与 JavaScript 文件的命名方式非常相似。

Three.js项目为例,主文件有多个版本

  • three.module.js
    
    
  • three.module.min.js
    
    
  • three.js
    (在 v150+ 中已弃用)
  • three.min.js
    (在 v150+ 中已弃用)
所有这些文件都是扩展名为

.js

 的 JavaScript 文件,但附加的命名“扩展名”为文件的 
content 提供了线索:three.module.js
 是核心 
three.js
 项目的 ES 模块版本。 
three.module.min.js
 是 ES 模块构建的缩小版本。 
three.min.js
 是原始 ES 模块之前版本 
three.js
 文件的缩小版。
Razor 项目中的

/Pages

文件夹可以包含以下内容:


索引.cshtml
  • 索引.cshtml.cs
  • 索引.cs
Index.cshtml.cs

的命名约定提供了此类文件具有页面模型声明并与 Razor 视图文件关联的见解。

文件

Index.cs

,如果与

Index.cshtml
Index.cshtml.cs
位于同一文件夹中,可以包含任何内容,例如
Index.cshtml.cs
中使用的类模型声明。该文件可以通过这种方式命名,以将
Index.cs
与 Razor 页面相关联。
    

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