【发布时间】:2014-03-02 06:43:14
【问题描述】:
在浏览类别时,我的 URL 外观出现了一些问题。
基本上,这是某种餐饮应用程序,用户选择Town(顶级类别),然后选择Restaurant 对应town,在restaurant 中,他可以看到food。
我有TownViewController、RestaurantViewController、FoodViewController 和处理Town、Restaurant、Food 表示的主要操作是View(所以在每个控制器中)。
查看我拥有www.catering.com/Town 的所有城镇,这很好(尽管如果它的 /Towns 没有将控制器重命名为 Towns 也没有硬编码新路线会更好 - 如果可能的话)
要查看所选城镇的所有餐厅(在本例中 ID=1),我有 www.catering.com/Restaurant/View/1。现在这里有问题。这实际上应该是选择餐厅并表示食物时的路线,对于餐厅表示应该是www.catering.com/Town/View/1。所以实际上总是超级类别应该在 URL 中。
因为最后我有www.catering.com/Food/View/1,这没有任何意义,因为我查看的是餐厅而不是 id=1 的食物。
除了经典的路由硬编码之外,还有什么方法可以解决这个问题吗?我设法用一些硬编码的路线解决了这个问题,但我的客户说这不是一个好方法,因为它在更大的项目中会变得非常混乱。
我已经这样做了:
routes.MapRoute(
"Restaurant",
"Town/View/{id}",
new { controller = "Restaurant", action = "View", id = UrlParameter.Optional }
);
routes.MapRoute(
"Food",
"Restaurant/View/{id}",
new { controller = "Food", action = "View", id = UrlParameter.Optional }
);
【问题讨论】:
标签: .net asp.net-mvc url asp.net-mvc-routing categories