[英]ASP.NET 4 routing question
我正在嘗試在Global.asax文件中執行以下操作:
目前,我必須像這樣定義路線:
routes.MapPageRoute(
"ViewPage",
"pages/{slug}",
"~/viewpage.aspx",
false
);
注意{slug}
之前的單詞頁面
現在,如果我這樣定義它:
routes.MapPageRoute (
"ViewPage",
"{slug}",
"~/viewpage.aspx",
false
);
這是行不通的。
我的CSS和JS文件無法加載,我得到404。
但是,如果我這樣做:
routes.MapPageRoute (
"ContactPage",
"contact",
"~/contact.aspx",
false
);
它工作正常嗎?
基本上我希望我的網址看起來像這樣:
example.com/contact
或example.com/about-us
,所有這些都基於{slug}從數據庫動態提供。
有人可以幫忙嗎?
使用方法:
RouteTable.Routes.MapPageRoute("slug",
"{slug}",
"~/page.aspx", false);
對我來說很好。 您需要確保路線順序正確; 特定於常規,但也忽略資源等。否則它們也將被路由到那里。
希望能有所幫助
編輯
忽略以下路線:
RouteTable.Routes.Ignore("{resource}.axd/{*pathInfo}");
也許是這樣的,盡管我目前無法測試。 據我了解,它應該告訴路由處理程序忽略那些目錄中的任何內容。
routes.Add(new Route("images/", new StopRoutingHandler()));
routes.Add(new Route("js/", new StopRoutingHandler()));
routes.Add(new Route("css/", new StopRoutingHandler()));
多謝你們!!
我不得不重新安排路線。
我使用HttpHandler來組合和gzip我的js和css文件。 最后添加的內容如下:
const string combine = "~/code/httphandlers/httpcombiner.ashx";
RegisterRoutes(RouteTable.Routes);
RouteTable.Routes.Add(new Route("combine", new HttpHandlerRoute(combine)));
我將這些切換到:
const string combine = "~/code/httphandlers/httpcombiner.ashx";
RouteTable.Routes.Add(new Route("combine", new HttpHandlerRoute(combine)));
RegisterRoutes(RouteTable.Routes);
我為webresource.axd添加了StopRoutingHandler,現在一切正常!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.