C# 如何在HtmlHelper扩展方法上获得控制器和操作的语法高亮显示?
如何让VisualStudio提供控制器和动作语法高亮显示,就像它在下面为控制器和动作字符串提供自己的对象一样 使用时:C# 如何在HtmlHelper扩展方法上获得控制器和操作的语法高亮显示?,c#,visual-studio,asp.net-mvc-3,resharper,C#,Visual Studio,Asp.net Mvc 3,Resharper,如何让VisualStudio提供控制器和动作语法高亮显示,就像它在下面为控制器和动作字符串提供自己的对象一样 使用时: Html.Action("Index", "Home"); VisualStudio在控制器和操作上提供了额外的高亮显示,它甚至尝试检测哪些控制器和操作可用,并将其作为选项显示 请注意,在下图中,它如何根据我输入的控制器为我提供操作选项。这就是我希望为我的自定义代码所做的。 我有一个非常有效的HtmlHelper扩展方法,类似于以下内容: public static Mv
Html.Action("Index", "Home");
VisualStudio在控制器和操作上提供了额外的高亮显示,它甚至尝试检测哪些控制器和操作可用,并将其作为选项显示
请注意,在下图中,它如何根据我输入的控制器为我提供操作选项。这就是我希望为我的自定义代码所做的。
我有一个非常有效的HtmlHelper扩展方法,类似于以下内容:
public static MvcHtmlString Action(this HtmlHelper htmlHelper, string actionName, string controllerName, string myAwesomeField) {
return Action(htmlHelper, actionName, controllerName, null /* routeValues */, myAwesomeField);
}
我的扩展方法被intellisense接受,因为它知道我需要一些字符串。查看时,action和controller的参数是字符串,但VisualStudio知道这些控制器和操作是否存在,并提供额外的intellisense支持。工具是如何利用它的?您必须将扩展所在的名称空间包含在web.config of Views文件夹中,或者包含在特定视图本身中(通过
@使用
),以获得intellisense支持。如果您使用的是Resharper(当然是这样)这是一个完美的解决方案,我在5分钟内就找到了:
请按照此处的说明进行操作。
我选择将注释源代码放在项目中名为jetbrains.annotations.cs的文件中作为选项2。然后,只需添加如下所示的参数属性装饰(在我的方法中使用link),一切都正常
Nice我的扩展方法被intellisense接受,因为它知道我需要一些字符串。查看Microsoft的代码时,action和controller的参数是字符串,但Visual Studio知道这些控制器和actions是否存在,并提供额外的intellisense支持。nuget包现在可用,是IMHO的最佳选项。谢谢
public void WithLink([AspMvcAction] string action, [AspMvcController] string controller)