2010-01-15 168 views
14

是否可以在ASPX页面内嵌这样的内容?我可以在ASPX页面内联使用扩展方法吗?

<%= Me.SomeExtensionMethod() %> 

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

这不是非常重要,但是知道未来如何做是一件好事。

谢谢!

回答

8

尝试关闭.aspx页面并按照this answer再次打开页面。如果这可以改善某些事情(例如启用智能感知),但不能解决问题,请发布任何新错误。

您还可以将Public修饰符添加到您的Moduleclass定义中。如果您使用的是模块,对我来说这是不需要的,但对this forum的一些讨论表明它可能有所帮助。

+1

这工作!和你一样,这对我来说确实没有意义,但添加“公共”访问修饰符的确有用。谢谢! – Pwninstein 2010-01-15 20:05:39

+0

为我工作!我不得不将我的模块更改为公共范围,并将导入添加到“Namespace.ModuleName”。 – EverPresent 2013-02-22 20:10:32

+0

谢谢 - 我使用了'import'语句,它工作。 – strider 2014-08-23 17:41:09

0

如果它工作在代码隐藏的命名空间添加到函数调用:

<%=MyNamespace.ExtensionFcn("hello, world") %> 

我会做这个之前,我会修改web.config。

9

在命名空间中添加导入适用于我!

<%@ Import Namespace="Foo.FooFoo" %> 
+1

这里是答案。它不可访问,因为包含扩展方法的类在ASPX生成的类中不会自动导入/使用。在代码隐藏中添加Import/using子句并没有帮助,因为代码隐藏只是ASPX类的基类。 – JMD 2016-03-14 20:42:56

相关问题