Asp.net mvc 基于URL而非控制器的ActionLink/RouteLink

Asp.net mvc 基于URL而非控制器的ActionLink/RouteLink,asp.net-mvc,asp.net-mvc-2,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 2,Asp.net Mvc Routing,我有一个使用以下结构的控制器: .com/Object/375 但是,当我访问特殊管理员权限时,我也可以使用以下URL .com/Admin/Object/375 无论您是否在管理部分,我都使用相同的用户控件,但它们都指向相同的控制器对象。我需要链接来维护URL结构,而不是试图将管理员用户踢回对象控制器。我目前正在使用route name方法,其中这些是我的路由名称(在global.asax中): 这些路由名称包含以下路由: Admin/Object, Admin/Object/555, O

我有一个使用以下结构的控制器:

.com/Object/375
但是,当我访问特殊管理员权限时,我也可以使用以下URL

.com/Admin/Object/375
无论您是否在管理部分,我都使用相同的用户控件,但它们都指向相同的控制器对象。我需要链接来维护URL结构,而不是试图将管理员用户踢回对象控制器。我目前正在使用route name方法,其中这些是我的路由名称(在global.asax中):

这些路由名称包含以下路由:

Admin/Object, Admin/Object/555, Object, Object/323
然后在路由链接中使用以下内容

Html.RouteLink(id, Request.Url.Segments[1] + "-Object", new { id = id })
这个很好用,但是有一种奇怪的味道-还有其他想法吗


澄清:我需要根据当前的URL结构(有或没有管理员)正确创建URL,路由将指向正确的控制器(两个URL相同),并且只有在管理部分(基于URL)才会将管理员特定的内容注入页面。

仅作总结,使用ViewBag可能是一个更好的主意,因为使用URL段可能会导致意外错误,特别是当您移动控件或视图时。

只是澄清一下,您希望链接指向同一控制器,而不管用户角色/权限如何,但指向不同的操作方法?它们指向同一控制器(路由处理这个问题),我只需要根据当前的URL结构创建正确的URL。这样,如果他们在管理部分,他们将继续留在管理部分
Html.RouteLink(id, Request.Url.Segments[1] + "-Object", new { id = id })