22

只是为了区分在对话框中使用的视图或在 foreach 循环中使用的视图(客户详细信息)?

4

3 回答 3

33

您不需要下划线。这只是一个约定,MVC 非常热衷于使用约定。

于 2012-04-25T18:15:42.677 回答
29

Mike Brind 很好地提出了这个问题为什么 Razor _layout.cshtml 在文件名中有一个前导下划线?

由于网页中的布局页面不打算直接提供服务,因此它们带有下划线前缀。并且网页框架已配置为不允许直接请求名称中带有前导下划线的文件。

除此之外,我发现使用这个约定来区分完整视图和部分视图非常有帮助。

于 2012-04-25T18:19:24.147 回答
10

@Marius Schulz 提供了一个很好的参考,但没有抓住重点。是的,下划线有助于区分完整视图和部分视图,但更重要的是,它可以防止部分视图直接通过其 URL 加载,这可能会提供一些潜在的丑陋结果!(对于初学者来说,就像没有 CSS 一样。)

编辑:神秘人是对的……我在想什么?MVC 中的 URL 指向控制器/动作,而不是查看。

此外,可能会搞砸并在单独的窗口中显示部分内容,因此命名约定不会阻止这种情况。@Marius Schulz 和我对他的引用有同样的误解。

前导下划线是区分完整视图和部分视图的有用约定,我将继续使用它,但这只是约定,而不是功能差异。

于 2012-04-25T18:49:14.647 回答