views:

105

answers:

3

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  A: 

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.

Michael Haren
This worked! Like you, it really doesn't make sense to me, but adding the "Public" access modifier did the trick. Thanks!
Pwninstein
A: 

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.

egrunin
A: 

Add the namespace to the Namespaces in web.config.

Dirk
That may help but would expose the extensions to *all* pages which might not be desired; just something to consider
Michael Haren