Can I use Extension Methods inline in an ASPX page

2019-04-03 19:29发布

问题:

Is it possible to do something like this inline in an ASPX page?

<%= Me.SomeExtensionMethod() %>

I can't seem to figure out how to get this to work properly. I'm receiving an error saying that "SomeExtensionMethod" is not a member of the current Page object. I've added the necessary <%@ Import Namespace="..." %> directive at the top of my page. This Does work in code-behind.

This isn't vitally important, but it would be good to know how to do in the future.

Thanks!

回答1:

Try closing the .aspx page and opening it up again as per this answer. If that improves things at all (e.g. enable intellisense) but doesn't solve it, please post any new errors you get.

You could also add the Public modifier to your Module or class definition. If you're using Modules, it really doesn't make sense to me that it would be required, but some discussion on this forum indicates that it might help.



回答2:

Adding imports in the namespace works for me!

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


回答3:

If it's working in the codebehind, add the namespace to the function call:

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

I'd do this before I'd modify the web.config.