我在app_code中定义了一个扩展方法,如下所示。
public static class Extensions
{
public static string Hi(this object obj)
{
return "hi";
}
}
在剃须刀页面中,任何事情都可以说嗨:)
@Html.Hi();
@Request.Hi();
@this.Hi();
但@Hi()
不起作用。有没有办法使@Hi()
有效?
答案 0 :(得分:5)
C#只允许您调用由对象实例限定的扩展方法
如果您的扩展方法扩展了您的类型,则无法“直接”调用它;你需要写this.ExtensionMethod()
。
执行您要求的唯一方法是创建一个继承WebPage
(或WebViewPage
用于MVC视图)的类,并更改您的Razor页面以继承该类(使用{ {1}}指令)
答案 1 :(得分:1)
我认为你不能只叫@Hi()。非常肯定是@ this.Hi()
答案 2 :(得分:0)
就像正常情况一样,您必须将其包含在使用中。 razor syntaz是
@using Namespace.Namespace