Asp.net mvc MVC-索引视图溢出

Asp.net mvc MVC-索引视图溢出,asp.net-mvc,Asp.net Mvc,我已经使用MVC有一段时间了,与旧的ASP.NET框架相比,我对它总体上非常满意。将它与jQuery和EF结合在一起,生活就美好了 但有一件事让我非常恼火,那就是我最终拥有的所有索引视图。似乎我的每个控制器都有索引操作。因此,我有许多名为“索引”的视图,并且发现很难在IDE中跟踪它们。使用“Index.cshtml”打开多个选项卡并不少见,如果不将鼠标悬停在选项卡上,我不知道它属于哪个控制器。很快就会让人困惑。同样的事情最终也会发生在创建、更新和删除操作上,这些操作对于许多控制器来说都很常见 也

我已经使用MVC有一段时间了,与旧的ASP.NET框架相比,我对它总体上非常满意。将它与jQuery和EF结合在一起,生活就美好了

但有一件事让我非常恼火,那就是我最终拥有的所有索引视图。似乎我的每个控制器都有索引操作。因此,我有许多名为“索引”的视图,并且发现很难在IDE中跟踪它们。使用“Index.cshtml”打开多个选项卡并不少见,如果不将鼠标悬停在选项卡上,我不知道它属于哪个控制器。很快就会让人困惑。同样的事情最终也会发生在创建、更新和删除操作上,这些操作对于许多控制器来说都很常见


也许我应该在视图中包含控制器名称,以帮助它们保持笔直?想知道其他人在做什么来避免这个问题。

没有什么能阻止您使用不同的视图名称。但是,由于文件夹名称具有控制器名称,因此不会与具有相同名称的其余视图发生冲突


问题是-对于MVC框架-视图最好有它们的操作名称,这样您就可以返回默认名称,而不必特别指定名称。因此,您不希望在
HomeController
上有一个操作
HomeIndex
,是吗?

我也有同样的问题,在真正的“约定优先于配置”风格中,我提出了自己的约定,即在视图中使用控制器+操作名称

我使用spark,所以这是一个编写自定义描述符的案例,或者使用Razor,您可以编写一个自定义视图引擎,它从默认的RazorViewEngine扩展,并在其中构建您的约定。让你知道怎么做


这样,我可以在名为AccountIndex.spark(或.cshtml)的帐户控制器中使用Index操作,并且我仍然可以从操作中返回View()或PartialView(),而无需指定视图名称。

如果在打开的文档之间按住Ctrl+Tab键,您将在弹出窗口的左下角看到路径。不过,不太好。