类库扩展方法,这个关键字没有指向正确的源

时间:2017-01-23 10:26:58

标签: c# asp.net-mvc html-helper

我有一个包含几个扩展方法类的类库。我现在面临的问题是当我尝试从另一个引用它不能编译的库的项目调用扩展方法时,除非我将扩展类作为参数传递。

功能定义

  public static MvcHtmlString Tooltip(this HtmlHelper @this, string tooltip)
    {
        return new MvcHtmlString($@" <i class=""fa fa-question-circle"" title=""{tooltip}""></i>");
    } 

进行函数调用的预期方式

  MyLibrary.Extensions.Tooltip("foo")

我遇到的问题(编译的唯一方法)

  MyLibrary.Extensions.Tooltip(HtmlHelper,"foo")

2 个答案:

答案 0 :(得分:1)

扩展方法扩展其他一些类。 因此,在您的情况下,给定Html类型的变量HtmlHelper,您可以调用Html.Tooltip("foo")

您需要在文件中使用using MyLibrary.Extensions;

答案 1 :(得分:0)

扩展方法扩展关闭类型,因此将它们作为静态方法调用不是用途的方式。

您应该可以致电:

HtmlHelper.Tooltip("foo")

甚至:

@Html.Tooltip("foo")

确保命名空间正确配置为using:在您的视图中或web.config