2012-02-29 12 views
0

ASP.NET 4.0 Webフォームルーティングを使用しようとしています。 /catalog/group/{group}すべてのようなページの場合ASP.NET 4.0 WebフォームルーティングJavascriptが機能しない

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です:ここに私のRegisterRoutes機能です。しかし、ページcatalog/good/{good}に問題があります。

最初の奇妙なこと:私はこのページを開くと2回呼びます。だから私はPage.RouteData.Values["good"]の値が何であるかを見ています。 Page.RouteData.Values["good"]の最初の時間は正しい値(私のgoodId)を持っていますが、2回目には文字列値 "WebResource.axd"を取得しました!

私のハイシェアJavaScriptはページ上で動作しません。ハイスライド・イメージをクリックすると、JavaScriptを実行する代わりにページがリロードされます。

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

+1

それを "修正"するために、私は、'私はこのようなものを書いた ''。スクリプトソースの余分なスラッシュに注意してください。 VSはこれについて不平を言いますが、私は実行時に正常に動作します。私はこれを理解するためにしばらく時間をとったので、最終的にこのような道を手に入れるまで、さまざまな組み合わせのパスを試さなければならなかった。あなたのために働くことを願っています。 – MilkyWayJoe

答えて

1

私は私の問題を解決しました!解決策は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` 
関連する問題