扩展方法和剃须刀页面

问题描述 投票:4回答:3

我在如下的app_code中定义了扩展方法。

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

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

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

但是@Hi()不起作用。有没有办法使@Hi()工作?

c# asp.net razor extension-methods webmatrix
3个回答
5
投票

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

要做的唯一的方法是创建一个继承WebPage的类(对于MVC视图,则为WebViewPage),并更改Razor页面以继承该类(使用@inherits指令)] >


1
投票

我认为您不能只调用@Hi()。非常确定必须是@ this.Hi()


0
投票

就像正常情况一样,您必须将其包含在使用中。剃刀Syntaz是

© www.soinside.com 2019 - 2024. All rights reserved.