如何在Visual Studio中查找MVC控制器方法的引用

Cul*_*lme 6 c# asp.net-mvc visual-studio visual-studio-2017

由于WebForms的长期开发,我最近开始使用MVC。让我震惊的一件事是,由于控制器方法不是直接从代码中调用的,因此Visual Studio不会选择对它们的任何引用。

愚蠢的示例代码图像

我了解没有引用计数的原因,但有时可能会出现问题。假设我重写了一个控制器方法以适应一些新要求,也许对该方法的某个调用需要附加数据或修改后的结果。但是也许从多个地方调用了该方法或端点(如果您愿意的话),而我所做的更改中断了其他调用的结果处理。我希望能够轻松找到解决方案中的所有代码,该代码将调用端点。

目前,我倾向于复制方法名称并在整个解决方案中执行常规文本搜索,只要方法名称不太通用,效果就很好。如果方法名称为“索引”,则可能会很长。

关于如何简化此工作,是否有任何建议,例如编码约定,插件或其他?IE浏览器如何找到要调用端点的位置?

我目前使用的是Visual Studio 2017 Enterprise,但首选在其他版本中使用的解决方案-使答案尽可能多地有用。在此先感谢/ Culme

更新:根据收到的评论和答复,我学到了很多东西。除了下面提到的内容外,我还决定尝试使控制器方法名称保持唯一性和可识别性,以简化查找位置。作为示例,我将尝试使用“ Fidgets_IndexController”或类似的东西,而不仅仅是“ Index”。这样,简单的文本搜索对于查找调用代码将大有帮助。

tra*_*max 2

其中一个选项是 Resharper - 它或多或少可以确定您使用的位置Html.ActionLink()Html.BeginForm()指向控制器操作的位置。但它不会检测到任何由 JS 完成的帖子/重定向。

您还可以做的另一件事是使用T4MVC使视图中的链接成为静态类型,以便您可以搜索引用。

Index通过解决方案进行文本搜索可以提供帮助,但并不总是像您已经发现的那样好 -在一个普通的 MVC 项目中,您有多少个对字符串的引用?因此,这将有助于独特的控制器/操作名称,但不适用于通用名称。

除此之外,你只能靠自己了。如果你尝试做一些聪明的事情,比如在 JS 中连接字符串来给你正确的端点 - 你就有麻烦了。