ASP.NET에서 경로를 무시하는 방법 URL 라우팅을 형성합니다
-
07-07-2019 - |
문제
.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의 확장 메소드입니다.