[英]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.