2014-02-17 238 views
0

我的電子商務應用商店網址的成千上萬數據庫中的項目頁面。有成千上萬的這些URL,都是根級(即domain-name.com/{item-page-url))。ASP.NET MVC路由 - URL的

如果我用一個簡單的for循環調用RouteCollection.MapRoute每個URL站點的性能添加所有這些網址到路由表中的成倍下降。爲什麼?原因是here

我應該如何正確處理這種情況呢?將所有路由添加到路由表看起來不正確(更不用說性能幾乎證實了這一點)。我已經看到了關於檢查所有傳入的URL,然後嘗試匹配的URL的數據庫中的一些想法,但不完全明白,我怎麼會實現一個,我也不是知道這是否是最好的辦法。

任何想法或建議嗎?這看起來似乎並不罕見,但我還沒有找到具體的方法來處理它。

+0

這是什麼每個'{商品頁面的URL}'樣子?你能提供幾個例子嗎? –

+0

當然.... www.mydomain.com/car-wash-tri-fold-brochure-template.aspx或www.mydomain.com/child-care-pediatrician-office-brochure-template.aspx – cre8ive

+0

回答過類似的問題在這裏:http://stackoverflow.com/questions/13558541/what-kind-of-route-would-i-need-to-provide-vanity-urls/13641225。它可能會幫助你。 – shakib

回答

0

如果你可以改變你的路線, mycreativeshop.com/product/my-product-name然後添加以下路線路線配置文件的頂部可以幫助你。

routes.MapRoute(
       "CustomRouteProduct", 
       "product/{id}", 
       new { controller = "yourcontrollername", action = "Index" } 
      ); 

,並在行動地圖與您的產品名稱的名稱參數值

public ActionResult Index(string id) 
      { 
      //var prdName = id.Replace("-", " "); 
      //look up prdName in database     
      return View(); 
      } 

更新 增加以下內容作爲頂級路線

routes.MapRoute(
       "CustomRouteProductZX", 
       "{id}", 
       new { controller = "Content", action = "Index" } 
      ); 

,並通過訪問http://localhost:12025/Car-Paint我被引導到ContentController的索引操作,在那裏我訪問了「C在參數ID

AR-塗料「但是,上面有像上面這樣http://localhost:12025/Home/塊模式(這裏首頁也被視爲一種產品)

+0

是的,我非常熟悉如何做到這一點。問題是我需要處理直接從域中掛起的根級URL。 – cre8ive