【发布时间】:2016-02-15 15:13:33
【问题描述】:
我正在开发一个市场应用程序,它应该具有映射到不同城市的不同产品和供应商。 这个想法是我需要将 CurrentCity 存储在上下文中,以便我可以使用它来构造 url、过滤数据、获取交付区域等。 例如
www.mywebsite.com/cityA/listings
www.mywebsite.com/cityB/listings
www.mywebsite.com/cityA/cart
www.mywebsite.com/cityB/cart
类似于 MoonPig 网站 (https://www.moonpig.com/uk/Gift/Flowers/)
目前,我在几乎所有控制器方法中都将城市作为参数传递,并将其存储在 cookie 中。
另外,我也在考虑创建一个 BaseController 并可能将其注入 OnActionExecuting(ActionExecutingContext 上下文)。
但第一种方法的问题在于,所有的 Action 方法都需要将“city”作为参数,并且我需要在上下文中使用它来执行类似的操作
@Url.Action("Index", "Listings", new {city = cityName})
如果我使用第二种方法,那么我认为我不会得到其中包含城市的网址。
理想情况下,我正在寻找一种解决方案,通过该解决方案可以将城市参数作为基本路线/段注入 MVC RouteDictionary 中,以便相应地生成所有 Url(使用 @url 助手)。
这是可能的还是有更好的方法来解决这个问题? 如果有人能告诉我一个方向,我将不胜感激。
【问题讨论】:
标签: asp.net-mvc routes marketplace