我在 app_code 中定义了一个扩展方法,如下所示。
public static class Extensions
{
public static string Hi(this object obj)
{
return "hi";
}
}
在剃须刀页面中,任何东西都可以说嗨 :)
@Html.Hi();
@Request.Hi();
@this.Hi();
但@Hi()
不起作用。有没有办法让@Hi()
工作?
我在 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
(或WebViewPage
用于 MVC 视图)的类并更改您的 Razor 页面以继承该类(使用@inherits
指令)
我认为你不能只调用@Hi()。很肯定必须是@this.Hi()
就像正常情况一样,您必须将其包含在 using 中。剃刀合成器是
@using Namespace.Namespace