【发布时间】:2010-09-07 18:38:53
【问题描述】:
我正在为以下场景寻找一些路由示例或示例:
做事的一般例子是:{controller}/{action}/{id}
因此,在为您拥有的商店进行产品搜索的场景中:
public class ProductsController: Controller
{
public ActionResult Search(string id) // id being the search string
{ ... }
}
假设您有几家商店可以做到这一点,并且您一直希望这样做,那么有什么办法可以做到:{category}/{controller}/{action}/{id}
这样您就可以对特定商店进行特定搜索,但对不同商店使用不同的搜索方法?
(如果您要求商店名称的优先级高于 url 中的函数本身)
还是归结为:
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:
/this/search/items/search+term
/that/search/items/search+term
【问题讨论】:
-
1.0 版本中的“区域”概念是否解决了这个问题?
标签: asp.net-mvc routing controller