如何利用Resharper的“跳转到控制器方法”功能

6
Resharper 6有一个非常好的新功能:如果我在MVC3项目中的任何地方编写RedirectToAction或Html.Action,则会被下划线标出,并使用ctrl-click可以导航到该处。它还会通知我是否存在这样的操作。
然而,我在我的BaseController中有一个帮助程序方法,它接受附加参数(放入TempData中),然后调用RedirectToAction。不幸的是,Resharper不承认这些字符串为控制器和方法名称,并且没有下划线。 我使用的是与MVC相同的参数命名约定,返回类型也相同,但仍然不行。 MVC的方法是否被硬编码到Resharper中?有没有办法让我的方法也起作用?

Image included for clarity

1个回答

12

是的,您可以使用ReSharper的代码注释属性来实现。

首先,转到ReSharper->选项->代码注释,将属性的实现复制到剪贴板并添加到您的项目中。

然后,使用必要的属性标记方法的参数。例如,包含动作字符串的参数,请使用AspMvcActionAttribute进行标记;控制器则使用AspMvcControllerAttribute等。


到目前为止很好。如果我有一个只接受错误字符串参数的重载方法,并且它重定向到CurrentController/Index,我需要在该方法中添加什么来强调这一点? - TDaver
将方法本身标记为同时具有 AspMvcController 和 AspMvcAction 属性。 - derigel
我在方法上方放置了[AspMvcAction("Index"), AspMvcController],现在Resharper说无法导航到动作"IssueController",其中IssueController是我要使用它的控制器。它应该转到Issue/Index。 - TDaver
1
TDaver,在方法级别上似乎对控制器/操作属性无法正常工作 - 只能使用视图属性。 - derigel
不必将代码注释代码复制到您的项目中,您也可以通过Nuget安装包来安装:install-package JetBrains.Annotations - Ciaran Gallagher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接