类库扩展方法,此关键字未指向正确的源



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

函数定义

  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")

扩展方法扩展了其他一些类。所以在你的例子中,给定一个类型的变量Html HtmlHelper ,你可以调用 Html.Tooltip("foo")

您确实需要在要使用它的文件中有一个using MyLibrary.Extensions;

扩展方法扩展了关闭类型,因此将它们作为静态方法调用不是预期用法。

您应该能够致电:

HtmlHelper.Tooltip("foo")

甚至:

@Html.Tooltip("foo")

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

相关内容

  • 没有找到相关文章

最新更新