我有一个使用以下结构的控制器:
.com/Object/375
但是,当我访问特殊管理员权限时,我也可以使用以下URL
.com/Admin/Object/375
无论您是否在管理部分,我都使用相同的用户控件,但它们都指向相同的Controller Object 。我需要链接来维护该URL结构,而不是试图将Admin用户踢回Object控制器。我目前正在使用路由名称方法,其中这些是我的路由名称(在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结构(有或没有Admin)正确创建URL,路由将指向正确的控制器(两个URL都相同),管理员特定的内容将是仅在管理部分(基于URL)注入页面。
答案 0 :(得分:0)
为了解决这个问题,使用ViewBag可能是一个更好的主意,因为使用URL段可能会导致意外错误,特别是如果您移动控件或视图。