如何在MVC中最好地执行多级路由

时间:2010-12-15 22:28:26

标签: asp.net asp.net-mvc asp.net-mvc-routing

我有一个网站,我想要一个像:

这样的网址

/Some maincategory name/{id}/Some subcategory name/{id}/Some item name/{id}

我包含每个级别的ID,因为名称不是唯一的。这是可行的,但我必须为每个级别创建一个新的路由。我的Html.ActionLink也看起来很讨厌。

每个级别都有自己的控制器,因为级别完全不同。 URL可以是这样的:

_/Birds/2/Waders/4/Flamingos/23_  
_/Mammals/5/Dogs/23/Longeared/25/Somedog/76_  
_/Insects/7/Spiders_

这只是一个例子而不是我将要使用的。我的申请与动物无关。

这样做是否有好方法,或者我应该使用标准路由?

2 个答案:

答案 0 :(得分:0)

有两个解决方案:

  1. 使用全局路由导致

    http://you.url.com/controller/action/ {中间} / {SID} / {TID}

    其中mid =主要类别ID      sid =子类别ID      tid = item id

  2. 使用路由和查询字符串的组合

    http://you.url.com/controller/action/ {TID}中期= {中间}&安培; SID = {SID}

  3. 我建议你使用第二种方法,然后你不必大量使用路线的东西。并希望这有帮助!

答案 1 :(得分:0)

如何创建一个xml文件来描述每个节点的类别,值,URL,然后通过循环遍历这些xml节点来创建路由表?

这种xml还可以帮助您在页面上创建面包屑。