我可以在ASPX页面中使用内联扩展方法吗?

Mar*_*ter 16 asp.net extension-methods inline-code

是否有可能在ASPX页面中执行此类内联操作?

<%= Me.SomeExtensionMethod() %>
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何让它正常工作.我收到一条错误消息,说"SomeExtensionMethod"不是当前Page对象的成员.我在<%@ Import Namespace="..." %>页面顶部添加了必要的指令.这是否在后台代码工作.

这不是至关重要的,但知道未来该怎么做会很好.

谢谢!

小智 13

在命名空间中添加导入对我有用!

<%@ Import Namespace="Foo.FooFoo" %>
Run Code Online (Sandbox Code Playgroud)

  • 这就是答案。它是不可访问的,因为包含扩展方法的类在为 ASPX 生成的类中没有自动导入/'使用'-ed。在代码隐藏中添加 Import/using 子句也无济于事,因为代码隐藏只是 ASPX 类的基类。 (2认同)

Mic*_*ren 10

尝试关闭.aspx页面并按照此答案重新打开它.如果这改善了事情(例如启用intellisense)但没有解决它,请发布您获得的任何新错误.

您还可以将Public修改器添加到您的Moduleclass定义中.如果你正在使用模块,那对我来说真的没有必要,但是在这个论坛上的一些讨论表明它可能有所帮助.