문제

.NET 3.5 SP1 프레임 워크를 사용하고 있으며 응용 프로그램에서 URL 라우팅을 구현했습니다. JavaScript 오류가 발생했습니다.

Error: ASP.NET Ajax client-side framework failed to load.
Resource interpreted as script but transferred with MIME type text/html.
ReferenceError: Can't find variable: Sys

내 라우팅이 Microsoft AXD 파일을 선택하고 JavaScript를 제대로 보내지 않기 때문입니다. 나는 약간의 연구를했고 내가 사용할 수 있다는 것을 발견했다 Routes.IgnoreRoute, 아래와 같이 AXD를 무시할 수 있어야합니다.

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

그러나 그 줄을 Global.asax에 추가하면이 오류가 발생합니다.

CS1061: 'System.Web.Routing.RouteCollection' does not contain a definition for 'IgnoreRoute' and no extension method 'IgnoreRoute' accepting a first argument of type 'System.Web.Routing.RouteCollection' could be found (are you missing a using directive or an assembly reference?)

나는 그것을 가지고있다 System.Web.Routing 네임 스페이스 수입, 어떤 아이디어가 있습니까?

도움이 되었습니까?

해결책

ASP.NET MVC를 참조 할 필요가 없습니다. 당신은 사용할 수 있습니다 중단 핸들러 IrouteHandler를 구현하는 것 :

routes.Add(new Route("{resource}.axd/{*pathInfo}", new StopRoutingHandler()));

이것은 .NET 3.5 SP1의 일부이며 MVC가 필요하지 않습니다. IGNOREROUTES 방법은 ASP.NET MVC의 일부인 편의 확장 방법입니다.

다른 팁

오래된 질문이지만 여전히 다른 사람을 돕는 경우, 이것은 나에게 효과적이었습니다.

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

"무시"메소드가 존재하는 반면, 표준 ASP.NET에서는 "무시한"메소드가 (즉, MVC를 사용하지 않음)에 있지 않은 것으로 보인다. 이것은 Haacked의 코드와 동일한 결과를 얻을 수 있지만 약간 깨끗합니다 ...

나는 또한 당신이 당신의 무시력 규칙의 순서가 올바른 순서에 있는지 확인해야한다고 덧붙이고 싶습니다. 그렇지 않으면 첫 번째 경로가 먼저 적용되고 무시력이 무시됩니다.

Maproute 및 isgoreRoute는 System.web.mvc의 확장 메소드입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top