2012-03-02 3 views
2

ASP.NET 4.0 WebForms Routing을 사용하여 JavaScript에 문제가 있습니다.ASP.NET WebForms 라우팅 Javascript 오류

내 코드 :

void Application_Start(object sender, EventArgs e) 
{ 
     RegisterRoutes(RouteTable.Routes); 
} 

void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Ignore("{resource}.axd/{*pathInfo}");    
    routes.MapPageRoute("GoodInfo", "catalog/good/{good}", "~/GoodInfo.aspx"); 
    routes.MapPageRoute("GoodGroup", "catalog/group/{group}", "~/default.aspx"); 
} 

없는 라우팅 모든 것을 괜찮습니다. 내가 그것을 사용하는 경우 그러나 나는이 라인에

Error: jQuery is not defined

(방화범) 했나 페이지에 오류가 발생했습니다 :

jQuery(document).ready(function() { 
    HideBlocks(); 
}); 

그래서 내 자바 스크립트가 라우팅 된 페이지에서 작동하지 않습니다.

이 줄을 추가했습니다. routes.Ignore("{resource}.axd/{*pathInfo}");하지만 도움이되지 않았습니다.

+0

: [솔루션] (HTTP : //stackoverflow.com/questions/9503746/asp-net-4-0-webforms-routing-javascript-not-works) – algreat

답변

3

나는 내 문제를 해결했습니다! 솔루션은 2 부분으로 구성됩니다. 는 첫째로 그 솔루션 FOT

<script type="text/javascript" src="/../scripts/something.js"></script> 

감사 MilkyWayJoe

<script type="text/javascript" src="../scripts/something.js"></script> 

에서 내 스크립트 정의를 변경했습니다.

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

그래서 내 웹 자원이 또한

http://mysite.com/catalog/good/41 같은 페이지에 더 이상 경로가없는 나는 페이지의 스크립트 이벤트가 :

는 두 번째로 내가 대신의

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

라우팅 무시 추가 http://mysite.com/catalog/good/41/event/seq/1입니다. 내 경로에 추가 모든 매개 변수를 잡으려고하는 것은 규칙이

routes.Ignore("catalog/good/{good}/{*query1}"); 
    routes.Ignore("catalog/good/{good}/{query1}/{*query2}"); 
    routes.Ignore("catalog/good/{good}/{query1}/{query2}/{*query3}"); 
    routes.Ignore("catalog/good/{good}/{query1}/{query2}/{query3}/{*query4}"); 

그리고 당신의 Ignore 선언 MapPageRoute 선언 앞에 위치해야 함을 잊지 마세요 : 여기 솔루션을 게시

routes.Ignore("catalog/good/{resource}.axd/{*pathInfo}"); 
routes.MapPageRoute("GoodInfo", "catalog/good/{good}", "~/GoodInfo.aspx");`enter code here` 
1

생성 된 페이지 소스를 살펴보면 jQuery 라이브러리가 포함되어 있습니까?

리소스를 통해 jQuery를 포함하는 경우 해당 리소스가 포함되어 있으며 해당 줄 앞에 오류가 있는지 다시 확인하십시오.

+0

예,이 줄 앞에 jQuery가 포함되어 있습니다. 라우팅없이 페이지를 직접 호출하면 모두 정상적으로 작동합니다. – algreat