2

有没有办法将设计时元数据添加到 Visual Studio 中,建议字符串参数应该对应于控制器或视图的名称?MVC 在创作时已经有这种类型的智能感知

我有一些自定义的 Html Helper Extensions,它们按名称接收控制器和视图,并且会喜欢本机方法可用的语法突出显示/自动完成支持,例如Controller.Viewor Url.Action。这是一个简单的例子:

public static string IsActiveClass(this HtmlHelper html, string action, string controller)
{
    return IsActiveBool(html, action, controller) ? "active" : "";
}

与仅被视为字符串的自定义方法相比,这是本机智能感知的并排:

自动完成屏幕截图

显然,这可以在运行时通过反射进行检查,但我想看看是否有办法在设计时识别它。另一个可回答的问题可能是 Visual Studio 当前如何执行此操作(特别是作为确定是否可以利用该过程的一种方式)

4

1 回答 1

2

所有功劳归功于tocqueville ...您可以使用 JetBrains.Annotations 为ASP.NET MVC 中的自定义助手提供 Intellisense、Navigation 等

  1. JetBrains.Annotations.dll在你的项目和 bin 中包含
  2. 在您的方法中使用以下参数属性:

    • AspMvcView- 表示参数是一个视图
    • AspMvcAction- 表示参数是一个Action
    • AspMvcController- 表示参数是控制器

    public static string IsActiveClass(this HtmlHelper html,
        [AspMvcAction]string action,
        [AspMvcController]string controller)
    {
        return IsActiveBool(html, action, controller) ? "active" : "";
    }
    

哪个 resharper 将在其静态代码分析中使用:

控制器动作视图智能感知

于 2018-04-10T15:39:29.043 回答