考慮以下途徑:MVC3路由 - 如何在URL中的最後一個破折號之後分開?
routes.MapRoute(name: "CityHomePage1", url: "{city}-{state}", defaults: new { controller = "Home", action = "GeoHomePage" });
routes.MapRoute(name: "CityHomePage2", url: "{city}-{state}/", defaults: new { controller = "Home", action = "GeoHomePage" });
routes.MapRoute(name: "CityStateResults", url: "{city}-{state}/{searchTerm}", defaults: new { controller = "Results", action = "SearchCityState" });
routes.MapRoute(name: "CityStateCategoryResults", url: "{city}-{state}/{category}/{searchTerm}", defaults: new { controller = "Results", action = "SearchCityStateCategory" });
這種運作良好,當城市沒有破折號(「 - 」)在其中,但是我現在從具有下劃線更改多個城市都顯示在URL的方式在他們之間,現在有破折號。
因此,如果URL讀取http://www.site.com/Gardena-Ceretos-Santa_Monica-California/someterm它的路由將不再起作用。
我怎麼會搶狀態一切後,最後一個「 - 」和之前的「/」在我的路線來提取狀態?
現在這個來看,我應該有結構化的URL爲/市惠城區城市/州/ searchtearm,但現在,我必須堅持目前的結構。
謝謝。
在這裏您將有兩部分的城市,即「Santa_Monica」,這將是保留與「_」,因爲「聖誕老人」和「莫妮卡」本身不匹配,然後從數組的最後()部分獲取狀態。然而,我看到這是如何運作的,就SEO而言,所有城市/州之間都需要分離,所以我需要將它分開構建。我正在考慮一個正則表達式的解決方案,也許? – ElHaix
在你的問題中,你說你必須堅持原來的結構。你改變主意了嗎?如果你沒有改變主意,那麼你的意思是說你需要將它分開構建? – counsellorben