2016-10-13 4 views
1

저는 기존의 ASP.NET 프로젝트에서 일하고 있습니다. 나는 모양을 천천히 마사지하려고 노력하고 있습니다.하지만 초콜릿 핑거 하우스처럼 붕괴하지 않고는 큰 변화를 만들 수 없습니다 ....JavaScript에서 포함 된 ASP.NET GlobalResources에 어떻게 액세스합니까?

나는 이것에 대한 해결책을 찾으려고 노력했지만, 용어의 특정 혼합 ("자바 스크립트", "임베디드"및/또는 "자원") 때문에 .js 파일을 임베드하는 방법에 대한 정보를 얻지 못해서 비참하게 실패했다. .) 그리고 아마 일을하는 이상한 방법이라는 사실.

프로젝트는 번역 가능한 문자열에 대해 App_GlobalResources를 사용합니다.이 문자열은 마크 업과 마크 업 및 일부 JavaScript에서 사용됩니다.

HTML :

Text="<%$Resources: Resources, MeasuresLabel %>" 

JS : 예를 들어

setDialogTitle('summaryDialog', physicalElementName, Resources.Resources.Summary); 

이것은 우리가 어떤 통합 테스트 NUnit를 사용하기 시작 때까지 모두 잘 작동했다. Resources.resx를 NUnit에서 사용할 수있게 만들려면 Scott Allen의 suggestion을 따르십시오. NUnit에서 작동하지만 위의 Resources.Resources은 정의되지 않았습니다.

제 질문은이 임베디드 파일입니다. 어떻게 JavaScript에 액세스 할 수 있습니까 (아니면 NUnit에서 사용할 수있게하는 더 좋은 방법이 있습니까?).

.aspx 파일의 스크립트 태그가 아니라 별도의 .js 파일에 액세스하려는 코드로 인해 복잡해졌습니다.

편집 더 자세히 살펴보면 JS에서 액세스되는 속성은 정적 인 것이 현실입니다. 참조되는 장소의 수가 많기 때문에 사용되는 각 문자열에 변수를 추가하는 것은 실용적이지 않습니다.

답변

0

JS 파일은 ASP.NET 엔진을 통과하지 못하기 때문에 Resources.Resources.Summary가 정의되지 않은 이유가 내부에 포함될 때 작동합니다. <script> .aspx 파일의 태그. 이 문제를 해결하는 유일한 방법은 .aspx 페이지의 전역 javascript 변수에 사용 된 리소스 값을 저장 한 다음로드 된 JS 파일에서 사용하는 것입니다.

+0

구문은 다음과 같습니까? –

+0

+0

예, 'in Res 문자열을 이스케이프 처리해야하므로 var Resources ='This is not good ';로 끝나지 않게됩니다. –

관련 문제