如何在HtmlHelper扩展方法上获得控制器和动作的语法高亮?

时间:2012-10-27 03:59:02

标签: c# visual-studio asp.net-mvc-3 resharper

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

使用时:

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

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

请注意下图中的内容,它为我提供了基于我输入的控制器的操作选项。这就是我想要的自定义代码。 Controller / Action Goodness

我完全使用类似于以下内容的HtmlHelper扩展方法:

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

我知道我需要一些字符串,我的扩展方法被智能感知所吸引。当您查看Microsoft's code时,操作和控制器的参数是字符串,但Visual Studio知道这些控制器和操作是否存在并提供其他智能感知支持。工具如何得到它?

2 个答案:

答案 0 :(得分:3)

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

按照Jetbrains blog上的说明操作。 我选择了选项2,将注释源代码放在我的项目中包含的名为jetbrains.Annnotations.cs的文件中。然后只需添加如下参数属性修饰(在我的方法 WithLink 中),所有只能正常工作

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

尼斯

答案 1 :(得分:0)

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