我正在寻找一些示例或路由的示例,以用于以下类型的场景:MVC路由中控制器的类别? (在独立命名空间中复制控制器名称)
做事情的一般示例是:{controller}/{action}/{id }
所以在做一个商店产品搜索的情况下,你就必须:
public class ProductsController: Controller
{
public ActionResult Search(string id) // id being the search string
{ ... }
}
假设您有几家商店做到这一点,你想,始终是有什么办法可以再有:{category}/{controller}/{action}/{id}
因此,您可以针对特定商店进行特定搜索,但是针对不同的商店使用不同的搜索方法?
(如果需要的店名比函数本身的网址更高的优先级)
或将它归结为:
public class ProductsController: Controller
{
public ActionResult Search(int category, string id) // id being the search string
{
if(category == 1) return Category1Search();
if(category == 2) return Category2Search();
...
}
}
它可能不是一个很好的例子,但基本上这个想法是使用相同的控制器名称,因此在几种不同的情况下都有一个简单的URL,或者您是否需要唯一的控制器名称,并且没有办法将它们放在稍微不同的名称空间/目录中?
编辑补充:
其他原因,我想这是因为我可能要具有类别的URL,并且某些控制器将只在某些类别的工作。
IE:
/本/搜索/项目/搜索+长期< - 工程
/是/搜索/项目/搜索+长期< - 将无法正常工作 - 因为搜索控制器是不允许的。
1.0版本中的“区域”概念是否解决了这个问题? – hometoast 2009-06-01 01:10:30