2013. 2. 21. 15:00

Ajax 컨트롤을 이용해 만든 페이지가 정상적으로 잘 작동하는 것을 확인하였습니다.

그 후 단축url기능을 적용하기 위해 Global.asax파일에 RouteTable.Routes.MapPageRoute를 추가하자 에러가 -_-;;;

(참고 : [Asp.net] 단축 주소 구현하기)

 

 

1. 증상

웹폼(WebForm)에 'ScriptManager'와 'UpdatePanel'을 추가하고 테스트해봅니다.

 

이렇게 넣고 테스트하면 당연히 에러가 나지 않습니다.

 

그런데 'Global.asax'파일에 'RouteTable.Routes.MapPageRoute'를 추가하면 에러가 발생합니다.

 

Asp.net Ajax 클라이언트 쪽 프레임워크를 로드하지 못했습니다.
Asp.netAjax client-side framework failed to load

 

이 에러는 원인이 다양합니다.

이전에도 한번 이 에러를 다룬 적이 있습니다.

(참고 : [ASP.Net] Microsoft JScript 런타임 오류: '__doPostBack'이(가) 정의되지 않았습니다.)

 

 

2. 해결 방법

원인을 이것저것 찾다가 해외포럼에서 해결 방법을 찾았습니다.

 

이런 경우 라우터 테이블을 이용할 때 '.axd'파일을 무시하도록 설정해야 한다고 합니다.

(참고 : Asp.net 포럼 - Re: After enabling routing, get 'Ajax client-side framework failed to load" )

 

'.axd'파일을 무시하도록 설정하는 방법은 아래 코드를  'RouteTable.Routes.MapPageRoute'보다 앞에 적어주시면 됩니다.

RouteTable.Routes.Ignore("{resource}.axd/{*pathInfo}");

(참고 : MSDN - RouteCollection.Ignore 메서드 (String))

 

 

3. 테스트

이제 테스트해봅시다.

 

이제 에러 없이 동작하네요 ㅎ.

 

 

마무리

"Asp.net Ajax 클라이언트 쪽 프레임워크를 로드하지 못했습니다."

이 에러의 원인은 너무 다양해서 사실상 해결 못할 수도 있습니다-_-;

 

저 같은 경우 프로젝트가 꼬여서 이 에러가 나는 경우도 보았습니다.

(이런 경우 프로젝트를 다시 생성하면 정상적으로 동작합니다 ㅋㅋㅋㅋ)

 

어찌됬건 그중 한 가지라는 거죠 ㅎㅎㅎ