내 ScriptManager에서 참조되는 js 파일 (예 : "custom.js? 2009082020091417")의 경로에 "마지막으로 수정 된"타임 스탬프를 추가하고 싶습니다. 내 MasterPage에 포함 된) 및 모든 ScriptManagerProxies (내용 페이지)에서.코드에서 ScriptManager 프록시에 액세스
코드에서 ScriptManager에 쉽게 액세스 할 수 있습니다. 그런 다음 Scripts 컬렉션을 반복하여 선언적으로 설정 한 스크립트 경로를 가져온 다음 "? [lastmodifiedtimestamp]"에 새 경로를 "설정"합니다. .
문제는 존재할 수있는 ScriptManagerProxies를 얻는 방법을 알아낼 수 없다는 것입니다.
디버깅 할 때 비공개 멤버 (._proxies)에서 프록시를 볼 수 있습니다. 설명서를 살펴본 결과이 컬렉션에 실제로 공개적으로 액세스 할 수있는 위치를 확인할 수 없습니다.
내가 뭔가를 잃어 버렸나요?
나는이 내 콘텐츠 페이지의 Page_PreRenderComplete 이벤트의 기본 클래스에 다음 코드 :
ScriptManager sm = ScriptManager.GetCurrent((Page)this);
if(sm != null)
{
foreach (ScriptReference sr in sm.Scripts)
{
string fullpath = Server.MapPath(sr.Path);
sr.PathWithVersion(fullpath); //extension method that sets "new" script path
}
}
위의 코드는 나에게 내 MasterPage에 정의 된 하나의 스크립트,하지만하지 다른 두 스크립트를 제공합니다 내 콘텐츠 페이지의 ScriptManagerProxy에 정의되어 있습니다.
작품,하지만 어떻게 할 (? 것) 당신이 당신의 자바 스크립트 (예 : CSS와 관련된 WebResource 파일을 처리, 이미지 등)? – jerhewet