在默认的ASP.NET MVC 3项目、布局和;部分cshtml文件以下划线开头
_viewstart
_Layout
-
_LogOnPartial
个
为什么会有这样的惯例,它的用途是什么?我需要遵守这个惯例吗?
这个框架对以下划线开头的.cshtml
文件有什么特殊意义吗?
在默认的ASP.NET MVC 3项目、布局和;部分cshtml文件以下划线开头
_viewstart
_Layout
_LogOnPartial
个为什么会有这样的惯例,它的用途是什么?我需要遵守这个惯例吗?
这个框架对以下划线开头的.cshtml
文件有什么特殊意义吗?
Razor是为ASP开发的.NET网页(WebMatrix),它在视图、文件夹和路由方面没有MVC内置的保护.由于网页中的布局页面不打算直接提供服务,所以它们的前缀是下划线.网页框架已经配置为不允许直接请求名称中带有前导下划线的文件.另外网页中的cshtml文件通常需要可浏览.它们相当于.asp或.php文件.
ASP.NET团队已经声明,Web页面是ASP.NET开发的起点,这应该会导致及时迁移到MVC(对于那些想要继续前进的人).这在一定程度上意味着从Web页面迁移到MVC应该尽可能容易.因此,将网页中建立的命名约定延续到MVC Razor文件是有意义的.
因此,在文件名前面加下划线有一个技术原因——它与MVC无关.
[UPDATE Oct 2018]个
在新的ASP.NET Core Razor Pages框架(除版本2.1外),在启动时生成路由时,带前导下划线的文件将被忽略,即使它们有@page
指令(这通常会使它们成为可路由的Razor页面).这就是为什么在Razor Pages应用程序中,如果布局文件和部分文件不打算被浏览,那么使用前导下划线命名它们是有意义的.