4

我在 app_code 中定义了一个扩展方法,如下所示。

public static class Extensions
{
    public static string Hi(this object obj)
    {
        return "hi";
    }
}

在剃须刀页面中,任何东西都可以说嗨 :)

@Html.Hi();
@Request.Hi();   
@this.Hi();

@Hi()不起作用。有没有办法让@Hi()工作?

4

3 回答 3

5

C# 只允许您调用由对象实例限定的扩展方法。
如果您有扩展您的类型的扩展方法,则不能“直接”调用它;你需要写this.ExtensionMethod()

完成您要求的唯一方法是创建一个继承WebPage(或WebViewPage用于 MVC 视图)的类并更改您的 Razor 页面以继承该类(使用@inherits指令)

于 2011-02-16T01:50:51.410 回答
1

我认为你不能只调用@Hi()。很肯定必须是@this.Hi()

于 2011-02-16T01:48:13.963 回答
0

就像正常情况一样,您必须将其包含在 using 中。剃刀合成器是

@using Namespace.Namespace
于 2013-03-14T13:17:32.510 回答