我在如下的app_code中定义了扩展方法。
public static class Extensions
{
public static string Hi(this object obj)
{
return "hi";
}
}
在剃须刀页面中,任何东西都可以说嗨:)
@Html.Hi();
@Request.Hi();
@this.Hi();
但是@Hi()
不起作用。有没有办法使@Hi()
工作?
C#仅允许您调用对象实例限定的扩展方法。如果您有一个扩展方法来扩展您的类型,则不能“直接”调用它。您需要写this.ExtensionMethod()
。
要做的唯一的方法是创建一个继承WebPage
的类(对于MVC视图,则为WebViewPage
),并更改Razor页面以继承该类(使用@inherits
指令)] >
我认为您不能只调用@Hi()。非常确定必须是@ this.Hi()
就像正常情况一样,您必须将其包含在使用中。剃刀Syntaz是