2014-11-07 2 views
0

web.config 파일의 일부 구성을 기반으로 문자열을 출력하는 vb.net 모듈을 만들었습니다. 나는 호출하고 Default.aspx.vb 페이지 내에서 방법과 기능에서 모듈 기능을 사용하지만, 내가 지금처럼을 Default.aspx에서 모듈을 호출 할 때 할 수Default.aspx 페이지에서 모듈에 액세스 할 수 없지만 Default.aspx.vb에서 액세스 할 수 있습니다.

<a href="<% ModuleName.GetHref() %>"><% ModuleName.GetLinkName() %></a> 

을 나는

를 얻을 수

오류 12 'ModuleName'이 (가) 선언되지 않았습니다. 보호 수준으로 인해 액세스 할 수 없습니다.

이 모듈과 같이 선언한다 :

Public Module ModuleName 

및 모듈 내의 모든 기능은 공공 있습니다

Public Function GetHref() As String 

가 어떻게 .aspx 페이지 내에서이 함수를 호출 할 수 있습니다 ?

+0

왜 'HyperLink'와 같은 ASP.NET 서버 컨트롤을 사용하고 [NavigateUrl = ModuleName.GetHref()'] (http://msdn.microsoft.com/en-us/)를 통해 codebehind에서 할당하지 않는가? library/system.web.ui.webcontrols.hyperlink.navigateurl (v = vs.110) .aspx) 및 ['Text = ModuleName.GetLinkName()'] (http://msdn.microsoft.com/en-us/) library/system.web.ui.webcontrols.hyperlink.text (v = vs.110) .aspx)? –

+0

예를 들어'MyApp.ModuleName.GetHref()'라는 전체 네임 스페이스를 사용하여이를 참조하십시오. – mxmissile

+0

의견에 감사드립니다. 동일한 네임 스페이스에 있지만 네임 스페이스가있는 정규화 된 이름을 사용하여 먼저 시도했지만 작동하지 않았습니다.> Tim - 좋은 생각, 그렇게 할 것입니다. – NiteTrip

답변

1

나는 codebehind를 사용할 것이고, 나는 aspx에서 직접 액세스 할 수 있다고 생각하지 않는다. 따라서 앵커로 렌더링 된 ASP.NET servercontrol HyperLink을 사용하십시오.

그런 NavigateUrlText를 통해 코드 숨김 (. f.e Page_Load)에서 할당 : 또한 컴파일시 안전의 장점을 가지고 있으며, 디버깅 쉽게이

this.link.NavigateUrl = ModuleName.GetHref(); 
this.link.Text = ModuleName.GetLinkName(); 

합니다.

+0

감사합니다. 이것이 내가해야 할 일이라고 생각합니다. 나는 이것을 (4 분 안에) 할 수있을 때 대답으로 표시 할 것이다. – NiteTrip

관련 문제