2010-01-15 10 views
14

ASPX 페이지에서 이와 같이 할 수 있습니까?ASPX 페이지에서 확장 메서드를 인라인으로 사용할 수 있습니까?

<%= Me.SomeExtensionMethod() %> 

제대로 작동하지 않는 방법을 알아낼 수 없습니다. "SomeExtensionMethod"가 현재 Page 객체의 멤버가 아니라는 오류가 나타납니다. 내 페이지 상단에 필요한 <%@ Import Namespace="..." %> 지시문을 추가했습니다. 이 은 코드 숨김으로 작동합니다.

이것은 중요한 요소는 아니지만 향후 수행 방법을 알고있는 것이 좋습니다.

감사합니다.

답변

8

.aspx 페이지를 닫은 다음 this answer 페이지로 다시 열어보십시오. 그렇게하면 상황이 개선되지만 (예 : 인텔리 센스 사용) 문제를 해결하지 못하면 새로운 오류를 게시하십시오.

Module 또는 class 정의에 Public 수정자를 추가 할 수도 있습니다. 모듈을 사용하고 있다면 모듈이 필요하다는 것을 알지 못하지만 this forum에 대한 일부 토론은 도움이 될 수 있음을 나타냅니다. 이 코드 숨김에서 일하고있는 경우

+1

너와 마찬가지로 나에게도 의미가 없지만 "공개"액세스 수정자를 추가하는 것이 트릭을 만들었습니다. 감사! – Pwninstein

+0

나를 위해 일했습니다! 내 모듈을 공용 범위로 변경하고 "Namespace.ModuleName"에 가져 오기를 추가해야했습니다. – EverPresent

+0

감사합니다 - 나는'import' 문을 사용했고 효과가있었습니다. – strider

0

, 함수 호출에 네임 스페이스를 추가합니다 내가의 Web.config를 수정하는 것 전에

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

내가이 작업을 수행 할 것입니다.

9

네임 스페이스에 가져 오기를 추가하면 나에게 적합합니다!

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

여기가 답입니다. 확장 메서드가 포함 된 클래스는 ASPX 용으로 생성 된 클래스 내에서 자동으로 가져 오기/사용되지 않습니다. 때문에 액세스 할 수 없습니다. 코드 숨김은 ASPX 클래스의 기본 클래스이기 때문에 코드 숨김에 Import/using 절을 추가해도 도움이되지 않습니다. – JMD

관련 문제