8

如何让 Visual Studio 提供控制器和操作语法突出显示,就像它为以下控制器和操作字符串提供自己的对象一样?

当您使用:

Html.Action("Index", "Home");

Visual Studio 在控制器和操作上提供了额外的高亮显示,它甚至会尝试检测哪些是可用的,并将其作为一个选项呈现。

请注意下图中它如何根据我输入的控制器为我提供操作选项。这就是我希望我的自定义代码发生的事情。 控制器/动作善良

我有完美的 HtmlHelper 扩展方法,类似于以下内容:

public static MvcHtmlString Action(this HtmlHelper htmlHelper, string actionName, string controllerName, string myAwesomeField) {
        return Action(htmlHelper, actionName, controllerName, null /* routeValues */, myAwesomeField);
    }

我的扩展方法被智能感知所采用,因为它知道我需要一些字符串。当你查看微软的代码时,action 和 controller 的参数是字符串,但 Visual Studio 知道这些控制器和 action 是否存在并提供额外的智能感知支持。工具如何处理它?

4

2 回答 2

3

如果您使用的是 Resharper(当然是),那么这是我在 5 分钟内完成的完美解决方案:

按照Jetbrains 博客中的说明进行操作。我选择了选项 2,即在我的项目中包含一个名为 jetbrains.Annnotations.cs 的文件中包含注释源代码。然后只需添加如下参数属性装饰(在我的方法WithLink 中),一切正常

public void WithLink([AspMvcAction] string action, [AspMvcController] string controller)

好的

于 2014-11-08T01:59:42.520 回答
0

您必须在Views 文件夹的 web.config或特定视图本身 (by )中包含扩展所在的命名空间,@using以获得智能感知支持。

于 2012-10-27T10:46:19.683 回答