如何避免在 ASP.NET Core MVC 中将我的视图组件命名为 cshtmls "Default.cshtml"?

How can I avoid naming my View Component cshtmls "Default.cshtml" in ASP.NET Core MVC?

似乎在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 一个选项,尽管我不想这样做,因为很多样板文件已经完成。

The documentation on ViewComponents 是这样说的:

We recommend you name the view file Default.cshtml and use the Views/Shared/Components/{View Component Name}/{View Name} path.

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

和 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,但我确信这也适用于 Views/Shared/Components。