2012-03-02 15 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"); 
} 

なしルーティングすべてとはokです。しかし、私はそれを使用する場合、私はこの行の(Firebugの中)

Error: jQuery is not defined

敬遠しがちページにエラーました:

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

をだから私のJavaScriptがルーティングされたページ上では動作しません。

私はこの行を追加しましたroutes.Ignore("{resource}.axd/{*pathInfo}");しかし、それは私を助けませんでした。

+0

:[ソリューション](HTTP ://stackoverflow.com/questions/9503746/asp-net-4-0-webforms-routing-javascript-not-works) – algreat

答えて

3

私は私の問題を解決しました!解決策は2つの部分で構成されています。 は、まず私は、そのソリューションFOT MilkyWayJoe

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

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

のおかげで、私のスクリプトの定義を変更しました。だから私のWebリソースが http://mysite.com/catalog/good/41

のようなページでこれ以上のルートを持っていません。また、私はページのスクリプトイベントを持つ

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

は、第二に、私は

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

関連する問題