簡體   English   中英

ASP.NET 4.0 WebForms路由Javascript不起作用

[英]ASP.NET 4.0 WebForms Routing Javascript not works

我嘗試使用ASP.NET 4.0 WebForms路由。 這是我的RegisterRoutes函數:

 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");
    }

對於/catalog/group/{group}一切正常。 但是頁面catalog/good/{good}存在問題。

第一件奇怪的事:當我打開此頁面時,它將調用兩次。 因此,我看到了Page.RouteData.Values["good"]帶來了什么價值。 第一次在Page.RouteData.Values["good"]具有正確的值(我的goodId),但是第二次我獲得了字符串值“ WebResource.axd”!

因此,我的高幻燈片JavaScript無法在頁面上運行。 當我單擊高幻燈片圖像時,頁面將重新加載,而不是執行JavaScript。

我添加了以下路線: routes.Ignore("{resource}.axd/{*pathInfo}"); 但這並沒有幫助我。 有任何想法嗎?

我已經解決了我的問題! 該解決方案包括2個部分。 首先,我將腳本定義從

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

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

感謝MilkyWayJoe提出了該解決方案。

其次,我添加了忽略路由

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

代替:

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

因此,我的網絡資源在http://mysite.com/catalog/good/41頁面上不再有路由

我在頁面上也有腳本事件,例如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}");

並且不要忘記,必須在MapPageRoute聲明之前放置您的Ignore聲明:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM