【发布时间】:2010-11-05 13:08:17
【问题描述】:
我有一个使用以下结构的控制器:
.com/Object/375
但是,当我访问特殊管理员权限时,我也可以使用以下 URL
.com/Admin/Object/375
无论您是否在管理部分,我都使用相同的用户控件,但它们都指向同一个控制器对象。我需要链接来维护该 URL 结构,而不是尝试将管理员用户踢回对象控制器。我目前正在使用路由名称方法,这些是我的路由名称(在 global.asax 中):
"Admin/-Object"
"Object/-Object"
"Object-Object"
这些路线名称包含以下路线:
Admin/Object, Admin/Object/555, Object, Object/323
然后我在路由链接中使用以下内容
Html.RouteLink(id, Request.Url.Segments[1] + "-Object", new { id = id })
这很好用,但有一种奇怪的气味——还有其他想法吗?
澄清一下:我需要根据当前的 URL 结构(有或没有管理员)正确创建 URL,并且路由将指向正确的控制器(两个 URL 相同)并且管理员特定的内容将是仅在“管理”部分(基于 URL)注入页面。
【问题讨论】:
-
澄清一下,您希望链接指向同一个控制器而不考虑用户角色/权限,而是指向不同的操作方法?
-
它们指向同一个控制器(路由处理这个),我只需要根据当前的 URL 结构创建正确的 URL。因此,如果他们在管理部分,他们将继续留在管理部分
标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-routing