2013-02-01 45 views
3

我正在處理網頁url路由。我想要兩個路由網址,並且沒有相同參數,相同的模式和相同的url,但不同的路由名稱。 我的路線如下。asp.net web路由中的兩個頁面的相同url

Routes.MapPageRoute("Route1", "{parameter1}/{parameter2}", "packages.aspx"); 
Routes.MapPageRoute("Route2", "{parameter1}/{parameter2}", "destination.aspx", false, null, null,new RouteValueDictionary { { "isDestination", "yes"} }); 

當我調用虛擬路徑數據時,我只重定向寫入全局文件頂部的url。

VirtualPathData vpd =RouteTable.Routes.GetVirtualPath(null, 
       "Route1", 
       "parameter1", "parameter2"); 

VirtualPathData vpd =RouteTable.Routes.GetVirtualPath(null, 
       "Route2", 
       "parameter1", "parameter2"); 

路由1的Vpd返回路由。 如何構建兩個不同頁面的兩個URL?

+0

你有什麼辦法解決?請讓我知道.. –

回答

1

第一個選項:您可以使用route constraints來限制匹配特定路由的瀏覽器請求。您可以使用正則表達式來指定路由約束。

第二選項:您可以使用常量參數來區分具有相同編號&參數類型的路線。

例如:

Routes.MapPageRoute("Route1", "packages/{parameter1}/{parameter2}", "packages.aspx"); 
Routes.MapPageRoute("Route2", "destination/{parameter1}/{parameter2}", "destination.aspx", false, null, null,new RouteValueDictionary { { "isDestination", "yes"} }); 
+0

如何解決與4.0非MVC項目相同的問題?我有相同的條件相同的參數,但需要重新分配到不同的頁面? 我有同樣的問題!我的意思是說如何根據URL決定目的地頁面,例如:1。 routes.MapPageRoute(「carriers」,「{state}/{mcat}/{dcat}」,「〜/ carriers.aspx」); 2.routes.MapPageRoute(「phones」,「{state}/{mcat}/{dcat}」,「〜/ phones.aspx」);如果URL中的第二個參數值即mcat = cellphone,那麼它必須重定向到carriers.aspx。如果mcat = iphone那麼它必須重定向到phones.aspx頁面該怎麼辦?任何想法? –

+0

@SHEKHARSHETE你有沒有得到任何解決方案? – Webruster