3

似乎在 ASP.NET Core MVC 中,如果我想使用 View Component,我必须将它们放入 中Views\Shared\Components\[ViewComponentName],然后将文件命名为“Default.cshtml”。

这是相当令人沮丧的,因为在我帮助从 Perl CGI 移植的大型项目开始时,我正在创建大量的视图组件,并且在 Visual Studio 中有五个选项卡都命名Default.cshtml为令人困惑。

有什么办法可以避免这种命名约定?甚至可能将它们从文件夹中取出,使文件看起来像……?

Views\Shared\Components\[ViewComponentName].cshtml

我不知道是否只有一些我可以调整的设置或什么。在大多数情况下,我对 ASP.NET 还是很陌生,并且仍在搞清楚。使用 ASP.NET Framework 代替 ASP.NET Core一种选择,但我不希望这样做,因为很多样板文件已经完成。

ViewComponents 上的文档是这样说的:

我们建议您将视图文件命名为 Default.cshtml 并使用 Views/Shared/Components/{View Component Name}/{View Name} 路径。

这让我觉得有办法绕过这个限制,但它没有具体说明它是如何工作的或者它会是什么样子。

4

1 回答 1

5

像 Nic 一样,我同意有几个到几十个名为 default.cshtml 的文件很烦人。更重要的是有几个到几十个文件夹,每个文件夹中只有一个文件

Components/ViewComponentName/default.cshtml  
Components/AnotherViewComponentName/default.cshtml  
Components/AThirdViewComponentName/default.cshtml  

et cetera

我理解推荐名称和位置的原因……但我完全不同意并接受后果。对于那些同意我的骑士态度的人, View() 允许您指定视图名称

return View("Schools", items);

甚至指定视图的路径,如果你把它放在一个非标准的位置

return View("/Pages/Components/Schools.cshtml", items);

我正在使用 Razor Pages,但我确信这也适用于视图/共享/组件。

于 2019-12-11T21:51:42.633 回答